You are on page 1of 22

‫بسم ال الرحمن الرحيم‬

‫معلومات عن أوراكل‬
‫عند تنزيل‬ ‫•‬
‫‪Oracle DB & Developer‬‬
‫علي نفس الجهاز يجب ان يكون كل واحد فيهم له ‪ Home‬منفصل ويتم ضبط الـ ‪ TNS‬لكل ‪ Home‬على‬
‫حدي ‪.‬‬

‫لمعرفة عدد الـ ‪ HOMES‬الموجودة في جهازك ‪-:‬‬ ‫•‬


‫‪REGEDITHKEY_LOCAL_MACHAINE‬‬
‫‪SOFTWAREORACLEALL_HOMES.‬‬
‫وفي حالة عدم وجود ‪ ALL_HOMES‬يكون كل أوراكل على ‪ HOME‬واحد وهذا ل يفضل في‬
‫أوراكل ‪.‬‬

‫لزالة أوراكل من على أي جهاز يجب إزالته من ‪-:‬‬ ‫•‬


‫‪1. Regedit HKEY_LOCAL_MACHAINE‬‬
‫‪SOFTWAREORACLE.‬‬
‫‪2. Regedit ‬‬
‫‪HKEY_LOCAL_MACHAINESYSTEMSERVICE‬‬
‫‪ORACLE.‬‬
‫‪3. DELETE FROM PROGRAM MENUE.‬‬
‫‪4. DELETE ORACLE FOLDER FROM PROGRAM FILE.‬‬
‫‪5. REMOVE ORACLE FROM PATH INVIROMENT‬‬
‫‪VARIABLEPATH.‬‬
‫اذا حاولت تدخل على الـ ‪ SQL Pulse 8‬ورفض الدخول بعد ما يعطي في الخلف انه تم‬ ‫•‬
‫التصال ثم يظهر رسالة ‪ Don’t Send‬تشيل اس كيو ال بلس وتنزله مرة اخري ‪.‬‬

‫إذا أردت عمل ‪ Compile‬لمجموعة ‪ Forms‬مع بعض تعمل ‪ Patch File‬يحتوي على‬ ‫•‬
‫ما يلي ‪-:‬‬

‫‪Ifcmp60 module=FormName.frm USERID=UserName/Password‬‬


‫‪BATCH=YES MODULE_TYPE=Form Upgrade=Yes BUILD=yes‬‬
‫‪Compile_all=yes‬‬

‫السطر السابق يمثل ملف ‪ Form‬واحد لشاشة واحدة وإذا أردت إضافة شاشة أخرى تضيف سطر آخر‬
‫باسم الشاشة الجديدة وهكذا ‪.‬‬
‫ل تكتب في الـ ‪. MODULE_TYPE=menu‬‬ ‫تراعي إذا كان غير ‪ Form‬يعني ‪ Menu‬مث ً‬
‫تراعي ان يكون كله في سطر واحد ‪.‬‬
‫تراعي الـ ‪ Path‬الخاص بملف تشغيل الـ ‪ Compile‬وهو ‪ Ifcmp60‬هذا خاص بـ ‪ 6i‬أما ‪ 9i‬فهو‬
‫‪. Ifcmp90‬‬
‫يتم تشغيله من الـ ‪ Dos Mode‬وكل ‪ Form‬يخرج لها ملف ‪ FormName.Err‬فيه قائمة الخطاء‬
‫لكل ‪ Form‬وإذا كان هناك ‪ Form‬بها أخطاء يكون بداخل الملف كلمة ‪ Occurred‬و أيضا ل يتم‬
‫عمل ‪ Fmx‬لها‪.‬‬
‫عشان تعرف الـ ‪ Forms‬التي تم ‪ Compile‬لها بدون أخطاء بعد انتهاء الـ ‪ Compile‬يظهر لها‬
‫‪ Fmx‬والباقي يكون فيه خطأ ‪.‬‬
‫لعمل ‪ Compile‬مجمع لعدة تقارير تعمل ملف فيه ‪ Parameter‬والخر تباصي البارمتر‬ ‫•‬
‫فيه وتشغل الملفات كالتالي ‪-:‬‬

‫‪-‬‬ ‫ملف البارمتر ‪:ParamterFileName.Sis -:‬‬

‫‪Userid=UserName/Password‬‬
‫‪Stype=rdffile ==> Source File‬‬
‫‪Dtype=repfile ==> Distention File‬‬
‫‪Logfile = LogFileName.Log ==>Error File‬‬
‫‪Overwrite=yes‬‬
‫‪Batch=yes‬‬
‫(=‪Source‬‬
‫‪RepName1‬‬
‫‪, RepName2‬‬
‫‪, RepName3‬‬
‫)‬
‫اسم الملف أي اسم و أي امتداد ‪.‬‬
‫يتم ربطه مع ملف باتش للتشغيل كما يلي ‪-:‬‬
‫‪Rwcon60 cmdfile= ParamterFileName.sis‬‬

‫‪ Rwcon60‬لتشغيل الـ ‪ Compile‬الخاص بالتقارير‪.‬‬


‫‪ Cmdfile‬إشارة لسم الملف الذي سيأخذ منه المر‪.‬‬
‫‪ ParamterFileName.sis‬اسم ملف البارمتر‪.‬‬
‫تراعي الـ ‪ Path‬للملفات ‪.‬‬
‫كل الخطاء لكل التقارير ستظهر في ملف واحد هو ‪LogFileName.Log‬‬

‫بعد تحميل ‪ Oracle Database‬ولم يفتح معاك أو يعطي رسالة أن ‪Oracle Shut‬‬ ‫•‬
‫‪ Down‬أو رسالة ‪ Oracle Not Available‬يمكن أن تشغل من الدوس مود‬
‫‪Lsnrctl start‬‬
‫أو تشغل‬
‫‪Svrmgrlconnect internal‬‬
‫ثم‬
‫‪Startupopen‬‬

‫الـ ‪-: Form Builder‬‬ ‫•‬


‫الملف الذي يشغله ‪ F50des32.exe‬وينشي ملف ‪. FMB‬‬ ‫‪.a‬‬
‫الملف الذي يشغل الـ ‪ Compiler‬هو ‪. F50gen32.exe‬ويحول الـ‬ ‫‪.b‬‬
‫‪ FMB‬إلي ملف ‪. FMX‬‬
‫‪ FMB‬اختصار لـ ‪. Form Module Binary‬‬ ‫‪.c‬‬
‫‪ FMX‬اختصار لـ ‪.Form Module Executable‬‬ ‫‪.d‬‬
‫ملف تشغيل الـ ‪ FMX‬هو ‪. F50run32.exe‬‬ ‫‪.e‬‬
‫قائمة بالمتدادات الخاصة بأوراكل كما يلي ‪-:‬‬ ‫‪.f‬‬
‫الوصف لها‬ ‫اللحقة‬ ‫الوحدة ‪Module‬‬
‫‪ .FMB‬ملف تصميم الـ ‪. Form‬‬ ‫نموذج ‪Form‬‬
‫‪ .FMX‬ملف تنفيذ الـ ‪. Form‬‬
‫‪ .FMT‬ملف التصدير النصي للـ ‪. Form‬‬
‫‪ .MMB‬ملف تصميم الـ ‪. Menu‬‬ ‫قائمة ‪Menu‬‬
. Menu ‫ملف تنفيذ الـ‬ .MMX
. Menu ‫ملف التصدير النصي للـ‬ .MMT
.‫ كما يمكن تنفيذه أيضًا‬PL/SQL ‫ملف تصميم مكتبة‬ .PLL PL/SQL ‫مكتبة‬
.PL/SQL ‫ملف تنفيذ مكتبة‬ .PLX
.PL/SQL ‫ملف التصدير النصي لمكتبة‬ .PLD
. ‫ملف تصميم مكتبة العناصر‬ .OLB Object Library ‫مكتبة العناصر‬
. ‫ملف التصدير النصي لمكتبة العناصر‬ .OLT

-: ‫في حالة ان العربي بيطلع بشكل غير مضبوط في رسائل أوراكل‬ •


• Regedit  Local Machine\Software\Oracle\NLS_LANG  Open This File
And Write :-
Arabic_Amrica.Ar8mswin1256,,,Chang All NLS_LANG File In Regedit .
-: ‫ويمكن تحويله بشكل مؤقت من على الدوس مود كما يلي‬ •
Set NLS_Lang=Amrica_Amrica.AR8mswin1256.

‫ لها عند التشغيل‬Path ‫لجعل ملفات برنامجك تعمل مباشرة دون وضع‬ •
-: ‫ أيضًا‬Path ‫وتشغيل الصور واليقونات بدون كتابة‬
• Regedit FORMS60_Path  Open This File And Write :- c:\ِApp.Path;
• RegeditCreate New File Called UI_ICON Open This File And Write
c:\App.Path;

-: (‫ بيانات‬+ ‫لعمل استيراد لقاعدة البيانات )هيكل‬ •


imp User_name/Password File=path_Name\File_Name.DMP
FromUser=OldPassword Touser=NewPassword .

-: Script File ‫لعمل‬ •


DBA Studio Schema Tables R.Clik Show Object DDL.

-: ‫لعمل تصدير لقاعدة البيانات‬ •


EXP System/Manager File=Data_Path\Export_File_Name.DMP
Owner =User_Name Log =Data_Path\Lgo_File_Name.log

-: SQL Plus ‫لحفظ ما هو موجود على الـ‬ •


Save filename.sql
-: ‫لستدعاء الملف وتشغيله‬ •
Ed filename.sql

-: ‫ تم إنشاءه‬SQL ‫لتشغيل ملف‬ •


@FileName.sql

-: ‫على الداتا وأيضا‬Duplication ‫معناها‬Ora 00001 ‫إذا ظهرت لك رسالة خطأ‬ •


When No_Data_Found ===> 1403
When Too_Meny_Rows ====> 1422
When Deplication_Value_Index
When OverFlow ==> 6502
When Others Massege (SQLErr)

-: ‫لعرض محتويات الجدول من حقول‬ •


Desc TableName
‫لعمل نسخة من هيكل بيانات جدول معين ‪-:‬‬ ‫•‬
‫;‪CREATE table dept_backup1 as select * from dept where 1=2‬‬

‫لعمل ‪ Copy‬من سطر مكتوب داخل الـ ‪-: SQL Plus‬‬ ‫•‬
‫‪R Click + L Click‬‬

‫‪. SQL Plus‬‬ ‫لمسح محتويات شاشة ال ‪Shift + Del‬‬ ‫•‬

‫إذا أردت أن تضيف أي شئ في الـ ‪ Regedit‬بالنسبة لوراكل تضيفه في الهوم الخاص‬ ‫•‬
‫به‬
‫‪.Home0‬‬

‫أضف ‪ String Value‬جديد اكتب فيه ‪ dd-mm-yyyy‬وسمي الملف‬ ‫•‬


‫‪ nls_date_format‬لضبط التاريخ ‪.‬‬

‫أضف ‪ String Value‬اكتب فيه ‪ HH24:Mi:ss‬وسمي الملف‬ ‫•‬


‫‪ Nls_time_format‬لضبط الوقت ‪.‬‬

‫لستعراض أسماء الجداول الموجودة على اليوزر الخاص بك ‪-:‬‬ ‫•‬


‫;‪Select * from Tab‬‬

‫الفضل تشغل التقارير من الملف الـ ‪ Source‬بتاعها عشان الملف الـ ‪Complied‬‬ ‫•‬
‫الخاص بها بيضرب من إصدار لخر ‪ .‬كما يحتاج إلي إعادة ترجمة في حالة انه يقوم على ‪Library‬‬
‫وانك غيرت في الـ ‪. Library‬‬

‫لفتح ‪ Easy Config‬في حالة انه ل يفتح بالمرة دور على ملف اسمه ‪symcjit.Dll‬‬ ‫•‬
‫وغيره إلي ‪.symcjit.old‬‬
SQL And Database Administration
Oracle Objects: -
1. Database.
2. Table Space.
3. Users.
4. Tables.
5. Indexes.
6. Views.
7. Sequences.
8. Synonyms: -
. DB ‫ في نفس الـ‬User ‫بين الـ‬ Trust ‫سينمنس وهي علقة‬
9. Database Link.
10. Pl/SQL
10.1. Triggers.
10.2. Stored Functions.
10.3. Stored Procedure.
10.4. Packages.

• Table Space: -
‫ وهي‬Data File ‫ وتحتوي علي اكثر من‬Logical Storage ‫هو وحدة تخزين‬
-: Storage Fiscal ‫وحدة تخزين‬
Table Space: -
Data File1
Data File2
-: ‫والملفات المنشأة كلها وكل شئ يكون داخل جدولين هما‬
DBA_Datafiles, DBA_Tablesapce
-: ‫ جديد‬Table Space ‫ولنشاء‬ o
CREATE TABLESPACE MYTABLESPACE DATAFILE
'C:\TRAN\MYDATAFILE.DBF' SIZE 100 M
-: ‫ موجود‬Table Space ‫ولتعديل حجم‬ o
Syntax: -
ALTER DATABASE
DATAFILE 'Table Space Path\Table Space FileName.ORA'
RESIZE New Size M;
Example :-
ALTER DATABASE
DATAFILE 'C:\ORACLE\ORADATA\SISM\FIN.ORA'
RESIZE 100M;
-: User ‫لعمل‬ •

Syntax: -
create user username identified by password default tablespace
tablespacename temporary tablespace temp ;

Example: -
create user Islam identified by islam default tablespace mytablespace
temporary tablespace temp ;

-: ‫لعمل صلحيات للمستخدم الذي تم إنشاءه‬ •


Grant connect , resource to islam ;

-: ‫لعمل اتصال‬ •
Connect islam/islam ; Or conn islam/islam ;

-: ‫لسحب الصلحيات من مستخدم‬ •


Revoke connect, resource from islam ;

-: ‫للغاء مستخدم‬ •
Drop user User_Name cascade;
‫ للغاء أي ارتباط بين جدول في المستخدم هذا ومستخدم أخر يلغي الرتباط حتى يستطيع‬Cascade ‫وجملة‬
. ‫أن يلغي المستخدم بجميع جداوله‬
DDL (Data Definition Language)
‫لغة تعريف هيكل البيانات‬
-: ‫ من إنشاء وتعديل وإلغاء للجداول‬Structure ‫وهي لغة تتعامل مع هيكل البيانات‬
• Tables: -
-: Constraint Type ‫أنواع المحددات للحقول‬ •
1. Unique: -
. ‫ ول يسمح بالتكرار‬Null ‫مميز أو وحيد يسمح بإدخال‬
2. Primary Key P_K: -
. ‫ ول بالتكرار‬Null ‫ل يسمح بالـ‬
3. Foreign Key F_K: -
. Master & Details ‫وتعمل مع‬
4. Not Null: -
.(‫لبد من إدخال بيانات )ل يسمح بتركه فارغ‬
5. Check: -
.‫ غير ذلك يصدر رسالة خطأ‬20 : 10 ‫ل البيان الداخل يجب أن يكون من‬ ً ‫محدد بين كذا وكذا مث‬

-: Data Types ‫أنواع البيانات‬ •


Varchar2
Number
Long ==> ‫ جيجا بايت ول يفهمه أي قاعدة بيانات أخري‬2 ‫مساحته‬
Date
Nvarchar2 ==> National.
-:Create ‫لعمل جدول‬ •
Syntax:-
Create table TableName
(Col1 Data Type1, Col2 Data Type2, Col3 Data Type3,
Constraint
Example: -

‫جدول الصناف‬ .a
Create table inv_items
(inv_item varchar2(4),
descr varchar2(40),
constraint inv_item_PK primary key(inv_item));

-: ‫جدول الفواتير الماستر‬ .b

Create table invoices


(invoice_no number(10),
invoice_date date,
invoice_amt number(12,3),
invoice_status varchar2(1),
personal_name varchar2(40),
Constraint invoices_pk primary key(invoice_no),
Constraint invoice_chk check(invoice_status in (1,2,3,4)));

-:‫جدول تفاصيل الفاتورة‬ .c

Create table invoice_details


(serial_no number(10),
invoice_no number(10),
inv_item varchar2(4),
inv_amt number(12,3),
inv_disc number(12,3),
Constraint invoice_details_PK primary key(serial_no),
Constraint invoice_details_FK1 foreign key (invoice_no) references invoices
(invoice_no),
Constraint invoice_details_FK2 foreign key (inv_item) references
inv_items(inv_item));

-:Alter ‫للتعديل في هيكل جدول‬ •

Syntax:-
Alter table TableName AlterTypes();
Example: -
Alter table invoices add(invoice_disc number(12,3));

-: ‫ موجود‬constraint ‫إلغاء‬ .1
Syntax:-
Alter table invoices drop constraint invoice_chk1
-: ‫إضافة حقل‬ .2
Syntax:-
Alter table invoices add (ff number (12,3));
-: ‫إلغاء حقل‬ .3
Syntax:-
Alter table invoices drop column ff;
-: ‫تعديل حجم حقل موجود‬ .4
Syntax:-
Alter table invoices modify(FieldName number(10,3));
Example: -
Alter table invoices modify(invoice_disc number(10,3));
-: ‫إلغاء جدول تم إنشاءه من قبل‬ .5
Drop Table
-: ‫عمل فهرس‬ .6
Syntax:-
Create unique Index indexName on tableName(FieldName);
Example: -
Create Index ind_inv on invoices(invoice_date) ;
-: ‫إلغاء بيانات‬ .7
Truncate :-
. ‫يقوم بإلغاء البيانات من داخل جدول ولكن من عيوبه انه ل يوجد فيه تراجع عن إلغاء البيانات‬

TCL (Transaction Control Command Language)


‫لغة التحكم في العمليات‬
• RollBack :-
‫ ؟‬RollBack ‫ كيف يعمل الـ‬. ‫وهو اعادة البيانات في وضعها السابق للحدث الذي قمت به‬
‫ داخل‬Temporary ‫عند الغاء البيانات من داخل جدول اوراكل ياخذ نسخه من البيانات الملغاه ويضعها في‬
. Table Space ‫ داخل الـ‬Database ‫الـ‬

• Commit :-
.‫وهو تأكيد للحدث الذي قمت به‬

(DML (Data Manipulation Language


‫لغة التعامل مع البيانات‬
1- INSERT: -
Syntax1: -
Insert Into TableName (col1,col2,col3,)
Values (vlCol1, VlCol2, VlCol3);
‫إذا كنت عارف ترتيب الحقول حط ترتيب القيم على طول‬
Syntax2: -
Insert into TableName1
(Col1,Col2,Col..)
Select Col1,Col.. From TableName2;

Example: -
Insert into dept
(dept_no,dept_desc)
Values (&v1,'&v2');

‫& تستخدم عشان تدخل اكثر من مرة إذا كنت ستقوم بإدخال اكثر من سجل‬
. ‫ لكي يحفظ بشكل نهائي‬commit ‫ يعيد مرة أخرى بعد النتهاء من الدخالت تكتب‬/ ‫بعد أول سجل تعمل‬

-: ‫إذا أردت أن تأخذ نسخة من الجدول بالبيانات‬ •


Create table dept_backup as select * from dept
‫ وخلفه من‬Key ‫ أي يأخذ الجدول بدون‬Constraint ‫يأخذ الهيكل للجدول والبيانات ولكن بدون‬
. Constraint

-: ‫لنقل بيانات من جدول موجود إلي جدول أخر موجود‬ •


Insert into dept_backup
Select * from dept ;

-: ‫إذا أردت نقل بيانات حقل واحد من داخل جدول‬ •


Insert into dept_backup
(dept_no)
Select dept_no from dept;

2-DELETE: -
Delete From dept_backup
Where dept_no=3;
Commit;

3- Update
Syntax: -
Update TableName set Col1=Value1
Where Col1=Value2;
Example: -
Update dept set dept_desc = 'Sales'
Where Dept_no=1;

Commit;

4-QUERY (Data Query Language): -


Syntax: -
Select * Or Col From TableName Where Condition Order By ;

-: ‫ أنواع المدخلت‬-: Operators Types •


1-Arthimetic Operators ==> *,-,+,/
2-concatonate ==> ||
3-Set Operators ==>
A-Union
‫يعرض جميع المتشابهة مرة واحدة بين جدولين والغير متشابهة مرة واحدة‬

B-Intersect
‫يطلع المشترك فقط‬
C-Minus
‫يطلع الموجود في جدول وغير موجود في جدول تاني‬
4-Logical Operator: -

Select ‫الهيكل التنظيمي أو المستويات عند عرض جملة‬ •

• Hierarchical Queries :-
Select first_Name,Emp_id,salary from employee start with emp_id=1000 connect
by prior emp_id=manager;

• Alias: -
select F.N + X AliasName from TableName ;

• Literal Character String :-


Select F.N || 'String' || F.N AliasName from TableName ;

‫لزالة التكرار‬
Select Distinct F.N From TableName;

• Where Clause: -
Select F.N1,F.N2 From TableName Whwere Condition ;

• Compression Operator: -
1)=,>,<,<=,>=,<>,!=
2) Between
3) Like
4) Is null Or Is Not Null
5) In ==> select * From TableName In (100,5000)
‫ فقط ولكن فيه عيب أنها بطيئة‬5000 ‫ ورقم‬1000 ‫يجب رقم‬

• Logical Oprator :-
And,Not,Or

Select * from Employee where emp_id=1000 and (dept_no=2 or dept_no=1)


‫اللي بين قوسين شرط مع بعض واللي قبله شرط مختلف عنه‬

Not In
Not Exist
• Order By Clause: -
ASC ==> ‫من الصغير للكبير‬
Desc ==> ‫من الكبير للصغير‬

• SQL Function Clause: -


1) Single Row Functions: -
A-character
B-Number
C-Date
D-Conversion

A-character: -
Select upper (f.n) AliasName from TableName ;
‫الناتج كله حروف كابتل للنجليزي فقط‬
Select Length (f.n) AliasName From TableName;
‫طول الناتج للحقل‬
Select Initcap(f.n) AliasName From TableName ;
‫تطلع أول حرف كابتل للحقل‬
Select substr(f.n,1,3) From TableName;
Mid In VB ‫ حروف مثل‬3 ‫ أول‬1 ‫معناها طلع من الحقل من بداية رقم‬
Select Instr(F.n,& VribleName) From TableName ;

Select Instr('Samer','e') From TableName ;

Select * from TableName where Upper(f.n) = & VirbleName;

Select * from TableName where Lower(f.n) = & VirbleName;

B-Number: -
Select Round (f.n) AliasName from TableName ;
‫تقريب الناتج‬
Select Trunc(Date) From TableName ;
Shprt Date ‫ ممكن يحذف الوقت ويطلع الناتج‬Long Date ‫يشيل الزيادة من التاريخ يعني لو واخد‬
Select Mod (F.n1/f.n2) From TableName ;
‫يطلع ناتج الكسر فقط‬
C-Date
Select add_months (sysdate,2) from Dual ;
‫معناها زود شهرين على التاريخ وذلك للعرض فقط ولكن مش للتغيير‬

Select Next_day(Date) From TableName ;


‫يجب اليوم اللي بعده‬

Select Last_day(Date) From TableName ;


‫يطلع اليوم الخير من الشهر الحالي‬

Select Months_between(Date,date+1) from TableName;


‫يطلع الفرق بين تاريخين‬

Select Months_between(&Vrible1,&Vrible2) from TableName;


Select Months_between(sysDate,sysdate+1) from Dual;

Select Months_between('1/2/2004','1/1/2004') from Dual;

• General Functions: -

NVL ==> Null Value


Select NVL (F.n,Value) From TableName Where Condition;
‫ في حالة تحقق الشرط بتاع الـ‬Value ‫ غير القيمة الي‬Null Value ‫معناها ان لو القيمة بتاعة الحق‬
Select

Decode:-
Select Decode (f.n,Value,Imprative_Statament1,Imprative_Statament2)
‫معناها‬
if f.n=Value then
Imprative_Statament1
Else
Imprative_Statament2)
End if

D-Conversion: -

To_Char(Number) ==> Char (9,0,$)


Select To_Char(Salary,'99,9999') Sal from employee ;
99,9999 ==> ‫هي شكل ال‬Format

To_Char(Date)==>Char

Select To_Char(Date,'Format')
Select To_Char(sysdate,'YYYYMM') From Dual;
Select To_Char(Sysdate,'dd,Month,YYYY') From Dual ;
October ‫لتظهر معاك اسم الشهر كامل مثال‬
Select To_Char(Sysdate,'dd,Mon,YYYY') From Dual ;
Oct ‫لتظهر معاك اسم الشهر كامل مثال‬

Select To_Char(Sysdate,'day') From Dual ;


‫ليظهر معاك اليوم‬

Select To_Char(Sysdate,'HH:Mi:ss') From Dual ;


‫ليظهر الوقت‬

From Char ==> To Date


Select to_Date('31102004','dd-mm-yyyy') from dual

Display Data From Multiple Tables: -


Join Tables: -
1) Equijoin
Select a.dept_no,Emp_id,Dept_Desc,Salary From Dept A,Employee B
Where A.dept_no =B.Dept_no Order by A.DEpt_no;
‫ لكل جدول من الجداول الموجودة‬Alias ‫تقوم بتعريف‬
A==> Alias For Dept Table
B==> Alias For Employee Table
‫ويجب هنا ان يكون قيمة الحقل في الجدول الول يساوي انفس لحقل في جدول تاني‬
2) Non-Equijoin
Select a.dept_no,Emp_id,Dept_Desc,Salary From Dept A,Employee B
Order by A.DEpt_no;
‫هنا بدون ان يكون الحقلين متساوويم مع بعض‬
3) Outer Join
Select a.dept_no,Emp_id,Dept_Desc,Salary From Dept A,Employee B where
A.dept_no =B.Dept_no(+) Order by A.DEpt_no
‫يعرض جميع مافي الجدول الول حتي لو كان ل يوجد مثله في الجدول الثاني‬
4) Self Join
Select a.salary * 0.2 from employee a ,employee b where
a.manager=b.emp_id;
‫هي تعمل ربط بين نفس الجدول مرتين يجب حالة للتوضيح اكثر‬

2) Multiple Row Functions (GROUP Functions): -


1-AvG
2-Sum
3-Count ==> ‫* اسرع ان يكون لحقل واحد مش‬
NVl ‫ ولكي تتحاشي الموضوع تحط معاه‬Null ‫ يجب ال تكون الداتا تحتوي على‬3 ‫و‬2 ‫في‬

4-Max :- ‫يأخذ اعلي قيمة للحقل‬


Select Max (F.Name) AliasName From TableName;
5-Min :- ‫يأخذ اقل قيمة للحقل‬
Select Min (F.Name) AliasName From TableName;

Group By: -
Select Dept_no,sum(salary) from Employee group by dept_no Having
Sum(salary)>20000 ;

Select Dept_no,sum(salary) ss from Employee where ss>20000 group by dept_no


;

Subquerise: -
Select * From Table1Name where Condition (Select * from
Table2Name);

Select first_name ||' '|| Last_name from employee where salary > (select
salary from employee where emp_id=3000);
Or
Select first_name ||' '|| Last_name from employee where salary > (select
min (salary) from employee);

Select first_name ||' '|| Last_name from employee where salary > (select
min (salary) from employee);

Subquerise ‫ افضل من‬Join ‫ال‬


Union Clause: -
Select emp_id,year,month from employee_trnas union select
emp_id,year,moth from employee_trans_history where emp_id =1000;
‫يجب أن يكون الحقل في الجدول الول مطابق للحقل في الجدول الثاني‬

‫مثال حي عليها‬
‫رصيد ما سبق يمكن أن تجمع كل ما سبق الرصيد السابق ثم تضيف عليه الباقي حسب التاريخ‬

Select * from TableName1 where F.N1 < ‫تاريخ محدد‬


Union
Select * from TableName1 where F.N1 <‫نفس التاريخ السابق‬

Views Clause: -
Create or replace view ViewName as Select F.N1,F.N2,... From
TableName1, TableName2,... where F.N=F.N ;
‫إنشاء أو تعديل‬
Create or replace view Salary_trans as select a.emp_id,a.frist_name,b.Month || '/'
|| b.year Date ,b.Salary from employee a , employee_trans b where
a.emp_id=b.emp_id ;

; Select * from ViewName


‫وتستخدم بعد عملها مثل الجدول في العرض بـ‬
; Desc ViewName ‫وتستعرض محتوياتها بـ‬
View ‫جملة تحديث بيانات من داخل ال‬
Update SALARY_TRANS set SALARY = 6000 where emp_id = 1000;

‫للحذف‬
Delete from SALARY_TRANS where emp_id = 1000
‫ لحقلين ل يقبل‬Alias ‫لكن التعديل ل يعدل على حقل‬

Sequence Object: -
‫ عشان يأخذ مسلسل على الجدول يفيد في الفواتير وخلفه‬Serial Number
‫ولكن عيبه انه يعمل فراغ في مسلسل الرقام يعني أول ما تبدأ في إضافة سجل يحجز رقم مسلسل‬
‫ منفصل ليس له علقة بجدول معين‬Object ‫يكون‬

Create Sequence Seq_Name Increment By 1 Start With 1 ;


Create Sequence Emp_Seq Increment By 1 Start With 1 ;

Select emp_seq.currval from dual ;


Object ‫عشان تعرض الرقم الحالي من هذا الـ‬
Update, Delete

Select emp_seq.Nextval from dual ;


‫عشان يعرض القيمة التالية وتستخدم في الضافة‬
Insert

‫كيفية ربطه على جدول‬


Insert into employee values (emp_seq.nextval, 1000,'Moh','Saleh', 5000,2);
PL/SQL

Procedural Language: - ‫اللغة الجرائية‬


Stored Procedure With Interface ‫هي الرابط بين الـ‬

PL/SQL Structure: -
Santex :-

Declare {Optional}
Variables, cursor,User_Defined Exception
Begin ==> {Mandatory} ‫ضروري‬

SQL St ===>Body
Pl/SQL St ===>

Exception {Optional}
Actions To Perform Where Errors Occur {Mandatory}
END:

. ;End ‫ وينتهي بـ‬Begin ‫يبدأ بـ‬ •


-: ‫لعمل أوامر التعامل مع البيانات‬ •
1. Previous do_key(‘Previous_record’);
2. Nextdo_key(‘Next_record’);
3. Firstdo_key(‘Up’);
4. Lastdo_key(‘Down’);
5. New do_key(‘create_record’);
6. Save do_key(‘commit_form’);
7. Make Query do_key(‘enter_query’);
8. Execute Query do_key(‘Execute_query’);
9. Cancel Query do_key(‘clrfrm’);
10. Exit Form Query do_key(‘Exit_form’);
11. Deletedo_key(‘Delete_Record’);
12. Printdo_key(‘Print’);
13. Lock do_key(‘Lock_Record’);

-: EXE ‫لستدعاء ملف‬ •


Declare
Prg pls_integer ;
Begin
Prg:=dde-app-begin(‘c:\PathName\FileName’dde-app-mode-maximized);
:global.prg=prg;
End;
-: ‫لتكبير الشاشة الخاصة بأوراكل‬ •
In Form ActiveWhen_New_Form_Instance
Set_window_property(forms_mdi_window,window_state,maximize);
Set_window_property(‘window1’,position,0,0 );
Set_window_property(‘window1’,window_state,maximize);
-: If Statement ‫جملة‬ •
. E ‫ بدون‬elsif ‫ في أوراكل تكون‬Elseif ‫ ولكن فقط الختلف الوحيد في‬VB ‫مثل‬

-: ‫لتعريف متغير ووضع قيمة داخله‬ •


Declare
I number (5);
Begin
I: =5;
End;
-: ‫المعاملت الحسابية‬ •
. ‫ القسمة‬/ ، ‫ الطرح‬- ، ‫ ** الس‬، ‫ * الضرب‬، ‫ جمع‬+
-: ‫المعاملت العلقية‬ •
. ‫أصغر من‬ > ، ‫ < اكبر من‬، ‫ =! ل يساوي‬، ‫ =^ ل يساوي‬، ‫>< ل يساوي‬
-:Loop ‫التكرار‬ •
Loop-Exit-End
-: ‫ مثال‬. Exit ‫ لتنفيذ‬If ‫ تضع معها جملة‬Loop ‫لنهاء الـ‬
Begin
I: =1;
Loop
If I > 10 then
Exit;
End if;
Imperative Statement
I: =I+1;
End Loop;
End;

Loop-Exit When-End
Begin
I: =1;
Loop
Exit When I >10;
Imperative Statement
I: =I+1;
End Loop;
End;

While-Loop-End
Begin
I: =1;
While I <=10 LOOP
Imperative Statement
I: =I+1;
End Loop;
End;

For-in-Loop-End
Begin
For I In 1.10 LOOP
Imperative Statement
End Loop;
End;
-: Cursors ‫المؤشرات‬ •
-: ‫ وهي نوعان‬Select ‫تستخدم لجمل الـ‬
-: ‫المؤشرات الصريحة‬ .1
. ‫ فقط‬Select ‫ وتشمل عبارة‬Declare ‫يتم التصريح عنها في الـ‬
Declare
MyVariable varchar2(40);
Cursor MyCursor is select * from TableName Where FiledName=Value ;
Begin
Open MyCursor ;  ‫لفتح الكروسر‬
Fetch MyCursor Into MyVariable ; ‫إرجاع قيمة الكرسور ووضعه في متغير‬
Close MyCursor ; ‫لغلق الكروسر‬
.1
‫‪Form Builder‬‬
‫عناصر النافذة ‪-:Window Objects‬‬
‫شاشة اواركل الساسية ‪Run Time‬‬
‫‪Form Window‬‬

‫‪Canvas‬‬

‫‪Data Block  Like Container In VB‬‬

‫أنواع النوافذ ‪-:‬‬


‫النوافذ المستندية ‪-: Document Windows‬‬ ‫•‬
‫مثل النوافذ الـ ‪ Child‬في الـ ‪ VB‬تكون من خلل ‪MDI‬‬
‫)‪(Multiple Document Interface‬‬
‫يندرج تحته كل الـ ‪. Child‬‬
‫النوافذ الحوارية ‪-: Dialog Windows‬‬ ‫•‬
‫لظهار رسائل للمستخدم ويمكن أن تجعلها مشروطة ‪ Modal‬أي ل يتم إجراء‬
‫أي شئ قبل الجابة عليه ‪.‬‬
‫‪Canvas: -‬‬
‫يمكن للشاشة أن تحتوي على ‪ Canvas‬واحد أو اكثر من ‪ Canvas‬والـ ‪Canvas‬‬
‫أربع أنواع ‪-:‬‬
‫كانفز المحتوي ‪-: Content Canvas‬‬ ‫•‬
‫وهو الفتراضي لي نموذج ويتم إنشاءه تلقائيًا ‪.‬‬
‫كانفز المكدسة ‪-: Stacked Canvas‬‬ ‫•‬
‫يكون الـ ‪ Stacked‬فوق الـ ‪ Content‬ويمكن عن طريقه أن تجعل العناصر التي‬
‫بداخلها تظهر وتختفي ويمكن أيضا إضافة نوافذ فرعية منزلقة ‪Scrolled Sub‬‬
‫‪. Window‬‬
‫كانفز مبوبة ‪-: Tab Canvas‬‬ ‫•‬
‫تستقر أيضا فوق الـ ‪ Content Canvas‬وتكون متعددة الصفحات مثل‬
‫‪ Tab‬في الـ ‪. VB‬‬
‫كانفز شريط الدوات ‪-: Toolbar Canvas‬‬ ‫•‬
‫يمكن أن يكون أفقي أو رأسي) ‪ (Horizontal , Vertical‬للـ ‪ MDI‬ويمكن أن‬
‫تحتوي الشاشة الواحدة على اكثر من ‪. Toolbar‬‬

‫‪ :-‬عناصر الكتلة ‪Block Object‬‬


‫وهو عبارة عن حاوية منطقية لعناصر الـ ‪ Form‬مثل الـ ‪Container in VB‬‬
‫‪• Data Block: -‬‬
‫ينشئ جسر بين جدول أو اكثر في قاعدة البيانات وبين الـ ‪. Form‬‬
‫‪• Control Block: -‬‬
‫ويتم عمل الزرار فيه ‪.‬‬
‫‪Menu: -‬‬
‫لعمل قوائم ‪-:‬‬ ‫•‬
‫يمكنك عمل القائمة منفصلة لغراض عامة لكل الشاشات و إرفاقها مع الشاشات‬
‫دون الحاجة لتكرارها ‪.‬‬
‫‪File  Menu‬‬
‫‪+Create‬‬
‫سيقوم بعمل ‪ Menu‬جديدة فارغة اختار ‪ Property Plate‬وغير اسمها لي‬
‫اسم تريده ‪.‬‬
‫اضغط ‪ R.Click‬واختار من القائمة ‪ Menu Editor‬تظهر القائمة اكتب ما‬
‫تريده في القوائم وتحت البنود الفرعية يجب أن تكتب في الـ ‪ Pl/SQL‬الكود‬
‫المطلوب وإذا لم يوجد يجب أن تكتب ‪. ;Null‬‬
‫لربطها مع أي ‪ Form‬افتح الـ ‪ Form‬ومن الخصائص‬
‫‪Property Plate  Menu  Module‬‬
‫غير أسم الـ ‪ Menu‬السابق عملها ‪.‬‬
‫ومن بند ‪ Window‬من نفس الـ ‪Form‬‬
‫‪Property Plate  Module‬‬
‫خليها ‪ Yes‬بدل ‪. No‬‬
‫أنواع بنود القائمة ‪-:‬‬
‫‪Menu Item Type: -‬‬
‫عادي ‪Plain‬‬
‫)√( بجواره ‪Check‬‬
‫)‪Radio (Like Option‬‬
‫فاصل بنود ‪Separator‬‬
Alerts: -
-: ‫لعمل رسائل الخطاء‬ •
‫اختار من الـ‬
FormAlertsCreateProperty Plate
Button ‫ و‬Massage ‫ أزرار اكتب في الزرار الذي تريده في‬3 ‫بحد أقصى‬
-: ‫ بالسم الذي تريده‬Alerts ‫وحدد عدد الزرار وغير اسم الـ‬
Declare
Sis
Begin
Sis:= show Alert(‘‫;)’اسم الرسالة هنا‬
If sis= alerts_button1 then
Imperative Statement 1
Elsif sis=alert_button2 then
Imperative Statement 2
End if
End;

LOV (List Of Value):-


‫ يعمل ثم ضع الحقول‬wizard ‫ اختار جديد ثم اجعل الـ‬LOV ‫من البند‬
‫ غير اسم الـ‬Wizard ‫ بعد النتهاء من الـ‬. LOVs ‫المراد إظهارها في الـ‬
‫ مثل الحجم ومكان الظهور‬List ‫ وغير الخصائص الخاصة بالـ‬LOVs
-: ‫ تحت الحدث‬Cmd Button ‫وخلفه ولظهاره تحت‬
When-Button-pressed
Declare
Sis Boolean ;
Begin
Sis:=show-lov(‘LOVs_Name’);
End;

Text Item: -
(tab , enter, Down Arrow) ‫لفتح قابلية التحرك بـ‬ •
Keyboard navigable yes
‫سابق‬Item ‫للرجوع إلى الخلف لـ‬ •
Previous Navigation  ‫اختر العنصر الذي تريده يكون هو السابق‬
‫ تالي‬Item ‫للتحرك إلى المام لـ‬ •
‫اختر العنصر الذي تريده يكون هو التالي ‪Next Navigation ‬‬
‫لخفاء الحروف ‪Password‬‬ ‫•‬
‫‪Conceal Data‬‬

‫‪Editors: -‬‬
‫مثل الـ ‪ Note Pad‬وخلفه تنشئ كالتالي ‪-:‬‬
‫تقف على بند ‪ Editor‬وتختار ‪ Create‬يقوم بإنشاء ‪Editor‬‬ ‫•‬
‫جديد ‪.‬‬
‫يمكنك تغيير الـ ‪ … , Title , Name‬من الخصائص الخاصة به ‪.‬‬ ‫•‬
‫للربط مع ‪ Text‬من خصائص الـ ‪ Text‬اجعل خاصية ‪Editor‬‬ ‫•‬
‫بأسم الـ ‪ Editor‬الذي قمت بإنشائه ‪.‬‬

‫‪Check Box: -‬‬


‫لنشائه ‪-:‬‬
‫يجب أن يكون الحقل المقابل لحفظه ‪ Number‬من ‪Digit 1‬‬
‫تقف على الحقل بعد إضافته على الشاشة في الـ ‪ Canvas‬وتجعل الـ ‪Item‬‬
‫‪ Type‬على الختيار ‪ Check Box‬سيقوم بتخزين القيمة مباشرة ‪ 0,1‬بناء‬
‫على ‪ . Checked Or Not Checked‬وذلك بعد أن تغير‬
‫‪Value When Checked =1‬‬
‫‪Unchecked =0‬‬

‫‪List Item: -‬‬


‫لنشاء ‪. (List Item (Combo‬‬
‫قم بتغيير الخصائص التالية ‪-:‬‬
‫‪List Style  Populist‬‬
‫جميع البنود المراد إظهارها‪Elements In List ‬‬
‫للبنود ‪List Elements‬‬
‫قيمة كل بند ‪List Item Value‬‬
‫ضع رقم بند افتراضي ‪Initial Value ‬‬

‫‪Radio: -‬‬
‫لنشاء ‪ Radio‬مرتبط مع حقل معين تقف على الحقل وتختار من الخصائص‬
‫‪Item type Radio Group‬‬
‫ثم من على الـ ‪ Radio Button‬اضغط ‪ Create‬وغير الـ ‪ Label‬وقيمته‬
‫‪Radio Button Value‬‬
‫وبعدها يتم إظهاره في الـ ‪ Canvas‬بإعادة تشغيل الـ ‪Data Block Wizard‬‬
‫ عادي غير مرتبط بجدول يرسم بشكل عادي على‬Radio Button ‫أما إذا كان‬
. Canvas ‫الـ‬

Image: -
‫يجب أن يكون هناك حقل في الجدول من النوع‬
Long-RawNull
Data Block Wizard ‫ جديد وضيف حقل الصورة بالـ‬Module ‫قم بعمل‬
‫وقبل النهاية اختار الـ‬
Option  Blob-type=’Image’
‫سيظهر لك اسم الحقل الصورة على شكل صورة خد خصائص‬
Sizing Style = Adjust
-: ‫لتشغيل الصورة‬
-: ‫ جديد واكتب في‬Cmd ‫ضيف‬ •
When-button-pressed
Declare
File_name varchar2(255);
Begin
Read-imgae-
file(file_name,’any’ ,’module_name.blob_data’;
End;
‫ تقف علي بند الـ‬Menu Bar ‫ معين في الـ‬Icon ‫لظهار‬ •
‫ له‬Icon ‫ المراد عمل‬Menu
ToolsProperty Plate Icon In Menu yes
ToolsProperty Plate Icon File NameIcon Name

You might also like