2/21/2013

Tracking Changes in Data

السلام عليكم
Tracking Changes in Data

قد تكتشف فى بعض الأحيان وجود تحديثات غير لائقه فى البيانات داخل الجداول وتريد ان تعرف متى تم اضافه هذه البيانات داخل الجداول ففى هذه الحاله يمكنك استخدام multiple flashback queries لأستعراض البيانات عند نقطه معينه فمن خلال هذه الأداه سوف تتمكن من استعراض كافه التغييرات على البيانات خلال فترات زمنيه مختلفه.
ملحوظه : يمكنك عمل ذلك فى حاله كان اصدار قاعده البيانات لديك اقل من او يساوى oracle database 10g.1
ولكن ما بعد ذلك فهى تعمل خلال فتره زمنيه لا تتجازو الـ 900 ثانيه 
وتمكنك هذه الاداه من الحاق VERSIONS clause الى جمله SELECT لكى تتمكن من تحديد فتره زمنيه معينه بأستخدام SCN or timestamp   لكى تتمكن من رؤيه التعديلات التى تمت  على البيانات 
ما هو (SCN) ؟
هو System Change Number
تقوم اوركال بأدخال ارقام معينه الى الصفوف فى قاعده البيانات بعد كل عمليه حفظ لكى تتمكن بعد ذلك من الرجوع الى نقطه معينه 

فى المثال التالى سوف اقوم بعمل update على جدول employees سوف اقوم بتعدل راتبه من كذا الى كذا ثم سوف استعرض راتبه قبل التحديث وبعد التحديث ثم سوف استخدام VERSIONS clause لـ استعراض راتبه قبل التحديث وبعده.


2/18/2013

The MERGE Statement

السلام عليكم
The MERGE Statement

تمكنك جمله MERGE من عمل INSERT , UPDATE and DELETE  فى جدول معين بناء على شرط معين ولكى تتمكن من عمل اضافه او تعديل او حذف على جدول معين يجب ان تمتلك هذه الصلاحيات على هذا الجدول ويجب ان تمتلك صلاحيه SELECT من الجدول المراد الاستعلام عنه لـ اضافه ما تم الاستعلام عنه فى جدول المراد التعديل او الاضافه او الحذف عليه بناء عليه فـ انت لديك جدولين جدول -source- وهذا الجدول سيتم منه الاستعلام وجدول اخر -target- وهذا ما سيتم التعديل عليه.
الكود العام لـ MERGE
General Code
MERGE INTO table_name table_alias
USING (table|view|sub_query) alias
ON (join condition)
WHEN MATCHED THEN
UPDATE SET
col1 = col_val1,
col2 = col2_val
WHEN NOT MATCHED THEN
INSERT (column_list)
VALUES (column_values);

2/11/2013

Multitable INSERT Statements

السلام عليكم
Multitable INSERT Statements

ما هو Multitable INSERT Statements ؟
هو يمكنك من  ادخال عده قيم فى اكتر من جدول فى وقت واحد
هو مناسب جدا لـ انظمه المستودعات -warehousind- حيث يمكنك من نقل البيانات الناتجه عن اكثر من عمليه لوضعها فى جدول معين.
وهو اداه سريعه جدا مقارنه بـ استخدام جمل Single DML اوجمل IF فى عمليات INSERT
توجد عده انواع لـ Multitable INSERT Statements
Unconditional INSERT
Conditional ALL INSERT
Conditional FIRST INSERT
Pivoting INSERT
General Code
INSERT [ALL] [conditional_insert_clause]
[insert_into_clause value_clause] (subquery)
# conditional_insert_clause
[ALL] [FIRST]
[WHEN conditional THEN] [insert_into_clause values_clause]
[ELSE] [insert_into_clause values_clause]

2/10/2013

BLOG.ARAFA.ME

السلام عليكم

تم تغيير اسم المدونه من arafaa.blogspot.com الى blog.arafa.me عند استخدامك لـ الدومين القديم سوف يتم تحويلك الى الدومين الجديد مع ظهور هذه الصفحه فلا تقلق استكمل العمليه



2/09/2013

Explicit Default Feature

السلام عليكم
Explicit Default Feature

يمكنك استخدام default مع جمله insert or update لوضع قيمه افتراضيه داخل عمود معين . فى حاله عدم وجود قيمه افتراضيه سوف تقوم اوركال بوضع قيمه null 
فى المثال التالى سوف استخدام default مع جمله insert 
Code
INSERT INTO DEPT 
(DEPARTMENT_ID , DEPARTMENT_NAME,MANAGER_ID)
VALUES
(300,'DEVELOPER',DEFAULT);