Showing posts with label Oracle Training. Show all posts
Showing posts with label Oracle Training. Show all posts

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

1/31/2013

Cascading Constraints , ON DELETE CASCADE

السلام عليكم
Cascading Constraints

هى تقوم بـ الغاء العلاقات بين الجداول فى حاله Primary key,Unique , Foreign key
 يمكنك استخدامها مع جمله DROP COLUMN 
يمكنك ايضا من خلالها مسح اكتر من قيد فى نفس الوقت 
على سبيل المثال عندى جدول بأسم test_constraint يوجد علاقه ما بين عمود fk وعمود pk وهى علاقه اب لـ ابن
Code

CREATE TABLE  TEST1 (
PK     NUMBER PRIMARY KEY,
FK     NUMBER,
COL1 NUMBER,
col2   NUMBER,
CONSTRAINT fk_constraint FOREIGN KEY (fk) REFERENCES test1,
CONSTRAINT CK1 CHECK (PK > 0 AND COL1 > 0),
CONSTRAINT ck2 CHECK (col2 > 0));

1/29/2013

The FLASHBACK TABLE Statement

السلام عليكم
The FLASHBACK TABLE Statement

هى ميزه جديده توفرها قاعده بيانات اوركال فى اصدار 10 جى وهى تصنف ضمن SQL DDL. تمكنك هذه الاداه من الرجوع الى نقطه معينه على سبيل المثال لو قمت بمسح جدول عن طريق الخطأ واردت ان تستعيد هذا الجدول مره اخرى ولكن فى حاله استخدامك للامر PURGE لن تتمكن من استعاده اى شىء قمت بحذفه.
 وايضا اذا قمت بمسح او تعديل عمود معين او صف يمكنك من خلال الـ FLASHBACK تستطيع ان تعود الى نقطه معينه وهى اداه سهله وسريعه وبسيطه فى الاستعمال وتمكنك ايضا من استرجاع اكتر من جدول فى نفس الوقت على اكثر من SCHEMA كل ما عليك فعله هو عمل جمله استعلام معينه على RECYCLEBIN  ويظهرلك من خلالها اسم الجدول وحالته والوقت الذى تم فيه عمليه المسح.
هذا هو الكود العام للأمر

1/27/2013

Oracle Enterprise Manager (Host Credentials)

السلام عليكم
Oracle Enterprise Manager (Host Credentials)

 قد تحتاج الى بعض المميزات التى يتيحها لك Oracle Enterprise Manager على سبيل المثال  Schedule Backup لـ استكمال عمليه الـ Backup سوف يطلب منك ادخال كل من اسم المستخدم وكلمه المرور الخاصه بـ Host Credentials وهنا هو يريد ادخال اسم المستخدم وكلمه المرور التى تدخل من خلالهم الى نظام التشغيل لديك .عند ادخالك لهم سوف يظهر لك الخطأ التالى
صوره رقم (1)

How to reset System password when you forgotten

السلام عليكم

كيف يمكنك استعاده كلمه المرور فى حاله فقدانها او نسيانها او ما اشابهه ذلك درس اليوم ارى فيه ميزه كبيره وعيب كبير ايضا والميزه تكمن فى ان فى حاله لا يقدر الله فقدت كلمه مرور مدير النظام .. اذن فـ انت فى مشكله كبيره فمن خلال هذا الدرس ستتمكن ان شاء الله من استرجاعها .. اما العيب فـ يكمن فى ..من وجهه نظرى ان من خلال استخدام مجموعه الاوامر التاليه يستطيع اى شخص من عمل تغيير او استعاده لكلمه مدير النظام وارى فى ذلك خطأ كبير فى نظام حمايه قواعد بيانات اوركال.

قم بفتح برنامج sql plus ثم اكتب فى خانه user name

1/23/2013

Oracle INDEXES

السلام عليكم

درس اليوم عن Oracle INDEXES 
يوجد نوعان من INDEXES :
الاول:
يتم بناءه بشكل اتوماتيكى عند انشاءك لـ PRIMARY KEY OR UNIQUE KEY داخل الجدول وهذا النوع المفضل عند اوركال
الثانى :
عند استخدامك لكل من CREATE INDEX OR CREATE TABLE
دعنا نتحدث اكتر عن النوع الثانى بمثال :
Code
CREATE TABLE NEW_EMP
(employee_id NUMBER(6)
PRIMARY KEY USING INDEX
(CREATE INDEX emp_id_idx ON
NEW_EMP(employee_id)),
first_name VARCHAR2(20),
last_name VARCHAR2(25));

1/22/2013

How to Disable / Enable Constraint

السلام عليكم

درس اليوم عن كيفيه تعطيل او تفعيل القيود Constraint
Code
To Disable
ALTER TABLE EMP
DISABLE CONSTRAINT EMP_DPT_FK;

1/19/2013

Adding a Constraint Syntax , How to DROP CONSTRAINT

السلام عليكم
Adding a Constraint Syntax

درس اليوم عن كيفيه اضافه شرط معين على عمود فى جدول معين
لقد تحدثنا فى درس سابق عن امر Alter وقد سردنا بعض الخصائص التى يمكنك الاستفاده منها من هذا الامر يمكنك مشاهده الدرس السابق من خلال هذا الرابط
عند استخدامك لـ الامر Alter يمكنك ايضا من التالى :
- يمكنك من اضافه شرط جديد او مسح شرط تم اضافته من قبل.
- يمكنك من عمل تعطيل او تفعيل للشرط.
- يمكنك من اضافه not null باستخدام MODIFY
هذا هو الشكل العام للكود وبناء عليه تقوم بلتعويض عن ما تحتاجه من قيم
Code
ALTER TABLE <table_name>
ADD [CONSTRAINT <constraint_name>]
type (<column_name>);

1/16/2013

The Alter Table Statment , Drop Table PURGE

السلام عليكم
The Alter Table Statment

 درس اليوم عن امر Alter يمكنك هذا الامر من عمل التالى : 
1- يمكنك من اضافه عمود جديد.
2-يمكنك من التعديل على عمود موجود بلفعل.
3-يمكنك من تحديد قيمه -default value- افتراضيه لعمود جديد. 
4- يمكنك من مسح عمود.
بعد انشاء جدول جديد قد تحتاج لـ اضافه عمود جديد مسح عمود معين او اضافه قيمه افتراضيه لعمود معين او ماشابه ذلك اذا, واجهتك اى من الحالات السابقه اذن ف انت تحتاج الى الامر Alter
فى الامثله التاليه سوف اوضح الكود الافتراضى للـ Alter فى عمليات الاضافه او التعديل او المسح
فى عمليه الاضافه
Code
ALTER TABLE table
ADD (column datatype [DEFAULT expr]
[, column datatype]...);  

1/13/2013

Oracle Object Privileges

السلام عليكم
Oracle Object Privileges


اذا كان لديك صلاحيات الـ DBA  فـ انت بلتالى تمتلك اعطاء وسحب هذه الكائنات من والى المستخدمين وان لم يكن لديك صلاحيات ال DBA ولديك بعض الصلاحيات على اى من الكائنات الموضحه بلجدول فـ بأمكانك اعطاء ما تملك لمن يستحق :)
كما هو موضح بلجدول تعريف للكائنات -objects- وصلاحياتها وكيفيه استخدمها على سبيل المثال يمكنك استخدام امر ALTER مع table ولا يمكنك استخدامه مع ال VIEW وهكذا

كيف يمكنك اعطاء بعض الكائنات -objects- الى مستخدمين اخرين من الـ Schema الخاصه بك.. الخاصه بك تعنى هنا اى التى لديك انت عليها صلاحيات.
يمكنك استخدام الكود التالى لـ اعطاء الكائن المناسب للمستخدم المطلوب
فى المثال التالى سوف اعطى الكائن SELECT لمستخدمين 
اخريين

1/12/2013

What is a Oracle Role ?

السلام عليكم

ما هو الـ Role ؟

هى عباره عن مجموعه من الصلاحيات يمكن اعطائها للمستخدم وهذه الطريقه تسهل بعد ذلك سحب الصلاحيات من المستخدم او عمل ما يشبه الصيانه للـ Role والمقصود بلصيانه هنا هى اضافه صلاحيات اخرى للـ Role او مسح صلاحيات منها.
يستطيع اكتر من مستخدم ان يكونو فى نفس ال Role ويمكن اكتر من Role تكون لمستخدم واحد ويتم انشاء الـ Role داخل قاعده البيانات.
كيف تقوم بأنشاء Role جديده ؟
اذا لم تكن Dba او ليس لديك صلاحيات الـ Dba فى هذه الحاله يقوم الـ Dba بأنشاء Role جديده ثم يبدأ فى اعطاء الصلاحيات للـ Role ومن الـ Role يوزع الصلاحيات على المستخدمين

1/08/2013

Oracle System Privileges (DBA)

السلام عليكم

  DBA سنتحدث اليوم عن صلاحيات مدير النظام

يوجد اكتر من 100 صلاحيه لمدير النظام بأمكانه استخدامها او منحها لـ مستخدمين اخرين 
على سبيل المثال

CREATE USER
بأمكانه انشاء مستخدم جديد او اعطاء صلاحيه انشاء مستخدم جديد فى اى اسكيما لـ اى مستخدم اخر فى اى اسكيما
DROP USER
بأمكانه مسح اى مستخدم او اعطاء الصلاحيه لذلك لـ اى مستخدم اخر
DROP ANY TABLE
 او اعطاء الصلاحيه لذلك -SCHEMA- بامكانه مسح اى جدول داخل اى اسكيما
BACKUP ANY TABLES
EXPORT UTILITY بأمكانه اخد نسخه احتياطيه من اى اسكيما واعطاء الصلاحيات لذلك بأستخدام اى  
SELECT ANY TABLE
 فى اى اسكيما واعطاء الصلاحيات لذلك VIEW OR SNAPSHOTS بأمكانه الاستعلام عن اى جدول او 
CREATE ANY TABLE
بامكانه بناء اى جدول فى اى اسكيما واعطاء الصلاحيات لذلك

 DBA فى الجدول التالى يوضح اغلب صلاحيات ال