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);

2/07/2013

Updating Two Columns with a Subquery,Deleting Rows Based on Another Table

السلام عليكم
Updating Two Columns with a Subquery

كيف يمكنك عمل تحديث لعمودين او اكثر بأستخدام الـ subquery
فى المثال التالى يوجد جملتين subquery   فى الاولى اريد ان اجعل قيمه الـ job_id تساوى نفس قيمه الـ job_id للموظف رقم 205. فى الثانيه اريد ان اجعل قيمه الراتب نفس قيمه راتب الموظف رقم 205 واريد اجمالاعمل تحديث للقيم فى جدول emp13 للموظف رقم 104

Code
UPDATE EMP13
SET         JOB_ID = (SELECT JOB_ID
                              FROM    EMPLOYEES
                              WHERE  EMPLOYEE_ID = 205)
                                    ,
               SALARY= (SELECT SALARY
                              FROM   EMPLOYEES
                              WHERE EMPLOYEE_ID = 205)
WHERE EMPLOYEE_ID = 104;

2/04/2013

Inserting Using a Subquery as a Target , (Retrieving Data with a Subquery as Source (in line view

السلام عليكم
Inserting Using a Subquery as a Target

درس اليوم عكس المره السابقه :) لقد تحدث فى درس سابق عن كيف يمكنك اضافه صف او اكتر من صف داخل جدول باستخدام الـ Subquery وقد استخدمنا ال subquery للاستعلام عن قيمه معينه وادخالها فى الجدول كـ قيمه .

ولكن اليوم سوف نستعلم عن جدول ونضع له القيمه بأستخدام جمله 
value clause
Code
INSERT INTO 
(SELECT EMPLOYEE_ID
               ,LAST_NAME
               ,EMAIL
               ,HIRE_DATE
               ,JOB_ID
               ,SALARY
               ,DEPARTMENT_ID
FROM    EMP13
WHERE  DEPARTMENT_ID = 50);
VALUE
(99999,'ARAFA','A.ARAFA',TO_DATE('5-NOV-1986','DD-MON-RR'),'ORA_DEV'
,':D',50);

2/02/2013

Using Subqueries to Manipulate Data , Copying Rows from Another Table

السلام عليكم
Using Subqueries to Manipulate Data

يمكنك استخدام subquery مع جمل DML 
ويمكنك الاستفاده من subquery فى التالى :

يمكنك نقل البيانات من جدول الى اخر
يمكنك استعاده او استقبال البيانات من inline view
يمكنك تعديل البيانات فى جدول بناء على قيمه مُرسله من جدول آخر
يمكنك مسح صف من جدول بناء على صف من جدول آخر
يمكنك استخدام subqueries  لـ استعاده البيانات من جدول ويمكنك استعمالها فى ادخال البيانات لـ جدول آخر ومن خلال هذا الاسلوب او المنهج يمكنك نقل كميه كبيره من البيانات بسهوله من جدول الى جدول آخر بأستخدام جمله الـ SELECT 
ويمكنك ايضا استخدام subqueries للتعديل او الحذف مع WHERE CLAUSE فى جمله الـ UPDATE OR DELETE ويمكنك ايضا استخدام subqueries مع FORM CLAUSE وهذا ما يسمى بـ INLINE VIEW

2/01/2013

Backup Oracle Database (Oracle Enterprise Manager)

السلام عليكم

كيف يمكنك اخذ نسخه احتياطيه من قاعده بيانات اوركال بأستخدام Oracle Enterprise Manager
قم بلدخول على OEM بأستخدام الرابط التالى
http://LOCALHOST:1158/em
استبدل   LOCALHOST   فى حاله لو لم تكن على سيرفر قاعده البيانات واستبدلها بـ IP سيرفر قاعده البيانات
ثم قم بكتابه اسم المستخدم وكلمه مرور مدير قواعد البيانات ثم اختر من connect as --> SYSDBA

صوره (1)