إنتقال للمحتوى

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
* * * * * 1 صوت

دروس Pl/sql من الألف الى الياء


138 رد (ردود) على هذا الموضوع

#1 miash80

miash80

    عضو مميز

  • الأعضــاء
  • 794 مشاركة
  • الاسم الأول:mousa
  • اسم العائلة:hamdallah
  • البـلـد: Country Flag
  • الاهتمامات:Read
  • المنصب الحالي:Analyst Assistant

تاريخ المشاركة 16 December 2009 - 03:07 PM

اخواني واخواتي مشرفين وأعضاء السلام عليكم ورحمة الله وبركاته

وانا اسف للأنقطاع عن المنتدى مدة طويلة بسبب ظروف الحياة .

وشكر خاص لكل من سئل عني

والله يسعدكم جميعا


اليوم والحمدلله بدءت بكتابة بعض الدروس التي تشمل قسم PL/SQL

من الألف الى الياء واليوم سأضع اول درس وإن شاء الله ان اكون قد وفقت في كتابة

هذه الدروس ولن اضع الدرس التالي الا في حالة أستعياب الدرس الاول للجميع لذلك

اطلب من اي عضو او مشترك طرح اي سؤال اول باول في اي درس سيتم طرحه

مع رجاء خاص ان تكون الاسئلة طمن الدرس لكي لا يتشتت تفكير اي مشترك.


وبسم الله بندء .....

مقدمة صغيرة

لغة PL/SQL تعتبر لغة البرمجة الخاصة بنظام اوراكل وهي اداة برمجية قوية جدا

وكلمة PL/SQL اختصاراً لـ (Procedure Language/Structure Query Language )

وتستخدم هذه اللغة لتجهيز نظام Oracle عن طريقة معالجة التسجيلات

وتستخدم أيضاً في أدوات التطوير المنتجة من قبل شركة Oracle

وهي تعتبر أساس برنامج بناء النماذج Oracle Forms و Oracle Reports

وتستخدم هذه اللغة أيضاً لتعريف نموذج ما

، والقيام ببعض الحسابات الخاصة في تقرير ما ، ومن أجل التسجيلات




الدرس الاول في ال Pl/Sql هو كتابة البرنامج البسيط وشرح مكونات البرنامج بالتفصيل

Declare  (Optional)  هذا الجزء اختياري بس اذا كان هنالك متغيرات يكون أجباري

Variables   Decleration Section هذا الجزء من البرنامج يعرف فيه المتغيرات بأنواعها 

begin (Mandatory)  بداية البرنامج وهذا الجزء أجباري
Eexcutable Section	هنا يكتب كود البرمجة الخاص بالبرنامج 
Pl/Sql Code
Exception (Optional)هذا الجزء خاص بمعالجة أخطاء البرنامج وهو أختياري ولكن انا بنظري هذا الجزء يجب ان يكون اجباري
Error Hanling Section
Error Type انواع الاخطاء  
1) Syntax Error (Compilaion)
2)Run Time (Logical Error)
end;  (Mandatory)  نهاية البرنامج وهذا الجزء أجباري


قبل البدء في اعطاء امثلة يجب التذكير بانواع البيانات   (Data Types)

   Varibale				  Data Type

1) V1					  Number عدد صحيح
2) V2					  Number(,) عدد حقيقي
3) V3					  Varchar2( ) متغير نصي
4) V4					  Boolean المتغير المنطقي ويأخذ خيارين
							   a)True
							   b)False
5) V5					 Table-Name.Column-Name%Type;  يأخذ نفس مواصفات حقل معين في احد الجداول
   Example  :  V5   Emp.Empno%type;	Emp  في جدول الـــEmpno  أخذت نفس نوع الحقل V5 
6) V6					 Table-name%Rowtype;  يأخذ نفس مواصفات جدول معين ونتعامل مع هذا المتغير كما نتعامل مع جدول
	Example  :  V6  Emp%rowtype;
					 ويستخدم بهذه الطريقة 
					V6.Empno  Or V6.Ename Or V6.sal ....Ext
7) V7			Cursor	وهذا المتغير له درس مستقل في الدروس القادمة أنشاء الله
8) V8			Cursor-Name%Rowtype;	أنشاء الله Cursor وهذا تابع في درس ال


كما احب ان اذكربــــ  جمــــــل If Statment  وأنواعها


1)If Condition then
   Code .....;
   end If;

2)If Condition then
   Code .....;
elsif
 Code....;
   end If;

3)If Condition then
Code .....;
elsif
Code....;
elsif
Code....;
else
Code...;
end If;

4)If Condition1 then
Code .....;
			  If Condition2 then
			  Code....;
										  If Condition3 then
										  Code....;
 End If;	---Condition3 
 End If;	---Condition2
 End If;	---Condition1


هنا سنشرح الحلقات او حلقة التكرار وانواعها

طبعا يجب وضع شرط للخروج من الحلقة

1)  For Loop
	Example1 : اريد ان اطبع من رقم واحد الى رقم عشرة

	For i in  1..10 loop	طبعا اجباري من الصغير للكبير دائما
	end loop;

  Example2 :	اريد ان اطبع من رقم واحد الى رقم عشرة بالعكس
	For i in  reverse 1..10 loop	أنتبه اجباري من الصغير للكبير دائما
	end loop;
 
2) While Loop

   While Condition Loop		 يجب وضع شرط لايقاف الحلقة
  Code  .....;
  end Loop;

 Example :اريد طباعة الراتب لغاية ما يصير الراتب يساوي 1000 دينار
  While sal = 1000 loop
 Code .....;
 sal:=sa+10;
 end loop;

3)loop

	Loop 
  Code ....;
  Exit When Condition;
 end loop;
Example  : أريد ان يعمل اضافة على الراتب لغاية ما يصير الراتب اقل أو يساوي500 دينار
Loop
Code ....;
Exit When sal <= 500;
end loop;


أتمنى ان اكون اوصلت معلومة بشكل صحيح ومناسب

فإن أصبت فمن الله وإن أخطأت فمن الشيطان ،،

إن شاء الله في المرة القادمة بعد الأخذ برأيكم وأسئلتكم

سأبدء بكتابة الامثلة إن شاء الله

أدعو لي بالتوفيق


  • hazem_2070 معجب بهذا

اللهم أغفر للمسلمين والمسلمات والمؤمينين والمؤمينات ألاحياء منهم وألاموات الى يوم الدين


موضوع قرأتة فأعجبني
http://www.shbab1.com/2minutes.htm

اذا عجبك موضوع من مواضيعي..لا تقل لي شكراً
و لكن أدعو لي (في ظهر الغيب) بالآتي

اللهم اغفر له ما تقدم من ذنبه و ما تأخر..اللهم احسن خاتمته
اللهم اغفر لوالديه و ارحمهما و ادخلهما جناتك برحمتك يا أرحم الراحمين و لكم بالمثل ان شاء الله
ارجو من الله ان يكون ما انقله لكم من ضمن حسناتى
 356663087.jpg

 

لا تأســــفنَّ عـلى غــــــدرِ الزمــانِ لطالــمـا

رقصـــــــت على جثــــثِ الأســــــــودِ كلابا

لا تحسبن برقصـــــها تعلوا على أســــيادها
تبقى الأســــودُ أسوداً والكـــــلابُ كِــــــلابا


#2 miash80

miash80

    عضو مميز

  • الأعضــاء
  • 794 مشاركة
  • الاسم الأول:mousa
  • اسم العائلة:hamdallah
  • البـلـد: Country Flag
  • الاهتمامات:Read
  • المنصب الحالي:Analyst Assistant

تاريخ المشاركة 18 December 2009 - 02:00 AM

السلام عليكم ورحمة الله وبركاته

اخواني واخواتي الاعزاء

لا ادري الموضوع من ثلاث ايام و71 قراءة ولا رد واحد

لا ادري هل اكمل الدروس اما لا .....

  • القصاص و Aya Isma3eel معجبون بهذا

اللهم أغفر للمسلمين والمسلمات والمؤمينين والمؤمينات ألاحياء منهم وألاموات الى يوم الدين


موضوع قرأتة فأعجبني
http://www.shbab1.com/2minutes.htm

اذا عجبك موضوع من مواضيعي..لا تقل لي شكراً
و لكن أدعو لي (في ظهر الغيب) بالآتي

اللهم اغفر له ما تقدم من ذنبه و ما تأخر..اللهم احسن خاتمته
اللهم اغفر لوالديه و ارحمهما و ادخلهما جناتك برحمتك يا أرحم الراحمين و لكم بالمثل ان شاء الله
ارجو من الله ان يكون ما انقله لكم من ضمن حسناتى
 356663087.jpg

 

لا تأســــفنَّ عـلى غــــــدرِ الزمــانِ لطالــمـا

رقصـــــــت على جثــــثِ الأســــــــودِ كلابا

لا تحسبن برقصـــــها تعلوا على أســــيادها
تبقى الأســــودُ أسوداً والكـــــلابُ كِــــــلابا


#3 Amgad

Amgad

    مشرف عام ومشرف قسم تحليل النظم

  • الفريق الإداري
  • 4,558 مشاركة
  • الاسم الأول:امجد
  • اسم العائلة:حلمي
  • البـلـد: Country Flag
  • المنصب الحالي:Business Systems Analyst at al Fanar Co. Riyadh KSA

تاريخ المشاركة 18 December 2009 - 02:54 AM

السلام عليكم ورحمة الله

الأخ / miash80

منذ فترة طويلة لمن نرى لك مشاركات معنا بالمنتدى ... والعودة قويه ... جهد متميز فى العرض وطريقة الشرح

استمر وستجد الكثير من الأعضاء... يتابعون شرحك

جزاك الله خيرا

لا إله إلا الله الحليم الكريم
لا اله إلا الله العلى العظيم
لا اله إلا الله رب السماوات السبع و رب العرش العظيم
‏اللهم ارزقني قبل الموت توبة وعند الموت شهادة وبعد الموت جنة
اللهم ارزقني حسن الخاتمة
اللهم هون علينا سكرات الموت ... ونور علينا قبورنا
اللهم ارزقني الموت وأنا ساجد لك يا ارحم الراحمين
اللهم ثبتني عند سؤال الملكين
اللهم اجعل قبري روضة من رياض الجنة ولا تجعله حفرة من حفر النار
اللهم اني اعوذ بك من فتن الدنيا
اللهم ارحم ابائنا وامهاتنا واغفر لهما وتجاوز عن سيئاتهما وادخلهم فسيح جناتك ... والحقنا بهما يا رب العالمين
اللهم ارحم موتانا وموتى المسلمين واشفي مرضانا ومرضى المسلمين
اللهم اغفر للمسلمين والمسلمات والمؤمنين والمؤمنات الأحياء منهم والأموات
وبارك اللهم على سيدنا محمد صلى الله عليه وسلم
اللهم آمين ... اللهم آمين ... اللهم آمين


....


#4 المحب لله

المحب لله

    عضو

  • الأعضــاء
  • 42 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 18 December 2009 - 03:46 AM

السلام عليكم ورحمة الله وبركاته
توكل على الله
اكمل بقيت الشرح
اسلوب رائع فى الشرح ومبسط
على بركة الله
والله المستعان
Ayman Sadat
Oracle Financial Consultant
Oracle Developer

#5 miash80

miash80

    عضو مميز

  • الأعضــاء
  • 794 مشاركة
  • الاسم الأول:mousa
  • اسم العائلة:hamdallah
  • البـلـد: Country Flag
  • الاهتمامات:Read
  • المنصب الحالي:Analyst Assistant

تاريخ المشاركة 19 December 2009 - 03:36 PM

وعليكم السلام ورحمة الله وبركاته

اهلا وسهلا بالاخ والاستاذ الكبير مهندس أمجد

انا أسف للأنقطاع عن المنتدى بسبب مشاغل الحياة

ولكن ان شاء الله سأستمر في التواجد في المنتدى


اللهم أغفر للمسلمين والمسلمات والمؤمينين والمؤمينات ألاحياء منهم وألاموات الى يوم الدين


موضوع قرأتة فأعجبني
http://www.shbab1.com/2minutes.htm

اذا عجبك موضوع من مواضيعي..لا تقل لي شكراً
و لكن أدعو لي (في ظهر الغيب) بالآتي

اللهم اغفر له ما تقدم من ذنبه و ما تأخر..اللهم احسن خاتمته
اللهم اغفر لوالديه و ارحمهما و ادخلهما جناتك برحمتك يا أرحم الراحمين و لكم بالمثل ان شاء الله
ارجو من الله ان يكون ما انقله لكم من ضمن حسناتى
 356663087.jpg

 

لا تأســــفنَّ عـلى غــــــدرِ الزمــانِ لطالــمـا

رقصـــــــت على جثــــثِ الأســــــــودِ كلابا

لا تحسبن برقصـــــها تعلوا على أســــيادها
تبقى الأســــودُ أسوداً والكـــــلابُ كِــــــلابا


#6 miash80

miash80

    عضو مميز

  • الأعضــاء
  • 794 مشاركة
  • الاسم الأول:mousa
  • اسم العائلة:hamdallah
  • البـلـد: Country Flag
  • الاهتمامات:Read
  • المنصب الحالي:Analyst Assistant

تاريخ المشاركة 19 December 2009 - 03:40 PM

السلام عليكم ورحمة الله وبركاته
توكل على الله
اكمل بقيت الشرح
اسلوب رائع فى الشرح ومبسط
على بركة الله
والله المستعان


وعليكم السلام ورحمة الله وبركاته

اهلا بأخي الفاضل المحب لله

اليوم أخي العزيز سأكتب الامثلة وارجوا ان تكون كافية للشرح الدرس


تم التعديل بواسطة miash80, 19 December 2009 - 03:45 PM.

اللهم أغفر للمسلمين والمسلمات والمؤمينين والمؤمينات ألاحياء منهم وألاموات الى يوم الدين


موضوع قرأتة فأعجبني
http://www.shbab1.com/2minutes.htm

اذا عجبك موضوع من مواضيعي..لا تقل لي شكراً
و لكن أدعو لي (في ظهر الغيب) بالآتي

اللهم اغفر له ما تقدم من ذنبه و ما تأخر..اللهم احسن خاتمته
اللهم اغفر لوالديه و ارحمهما و ادخلهما جناتك برحمتك يا أرحم الراحمين و لكم بالمثل ان شاء الله
ارجو من الله ان يكون ما انقله لكم من ضمن حسناتى
 356663087.jpg

 

لا تأســــفنَّ عـلى غــــــدرِ الزمــانِ لطالــمـا

رقصـــــــت على جثــــثِ الأســــــــودِ كلابا

لا تحسبن برقصـــــها تعلوا على أســــيادها
تبقى الأســــودُ أسوداً والكـــــلابُ كِــــــلابا


#7 miash80

miash80

    عضو مميز

  • الأعضــاء
  • 794 مشاركة
  • الاسم الأول:mousa
  • اسم العائلة:hamdallah
  • البـلـد: Country Flag
  • الاهتمامات:Read
  • المنصب الحالي:Analyst Assistant

تاريخ المشاركة 19 December 2009 - 06:00 PM

اليوم سنبدء ببعض الامثلة البسيطة .

ولكن قبل ذلك يجب معرفة بعض الامور بالنسبة للغة الــــــPL/SQL

1) يجب قبل كتابة اي برنامج في هذه اللغة كتابة هذه الجملة set serveroutput on

لكي تظهر نتيجة اي برناج على الشاشة وبدون هذه الجملة لن تظهر اي نتيجة على الشاشة

وبالامكان تجربة البرنامج مع او بدون هذه الجملة .

طبعا تكتب هذه الجملة مرة واحدة في كل مرة نفتح فيها شاشة ال Oracle SQL*Plus

2) يجب ان ينهتي أي امر في هذه اللغة بـــ ; و بعد كل تعريف موجود في البرنامج تنتهي بــــ ;

3) لأدخال اي قيمة في البرنامج يوضع & بعد كتابة المتغير مع اشارة :=

على سبيل المثال عندي متغير واسمه x واريد ان ادخل قيمة x اكتب التالي x:=&x

طبعا بعد & ممكن اكتب اي شي انا اريده يعني ممكن ان اكتب x:=&sal;

4) dbms_output.put_line(' '); هذه الجملة لاخراج النتائج على الشاشة

5) لاعادة تنفيذ البرنامج نكتب / ثم Enter


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

نبدء في اول مثال .

اريد كتابة برنامج يقسم رقمين ويعطيني الناتج ((( برنامج سهل جداااا)))



SQL> set serveroutput on
SQL>  declare
  2   a number;
  3   b number;
  4   c number;
  5   begin
  6   a:=&a;
  7   b:=&b;
  8   c:=a/b;
  9   dbms_output.put_line('Result Is  '||c);
 10  end;
 11  /
Enter value for a: 49
old   6:  a:=&a;
new   6:  a:=49;
Enter value for b: 7
old   7:  b:=&b;
new   7:  b:=7;
Result Is  7

PL/SQL procedure successfully completed.


الحمدلله البرناج يعمل صحيح ولكن انا لا اريد ان تظهر كلمة old وكلمة new في كل مرة

الموضوع مزعج لذلك اقوم بكتابة هذا الامر لتخلص من وجود هذه الكلمات وهو SQL> set verify off

طبعا بكتب هذا الامر في اي مكان ولكن يستحسن ان يكتب بعد الامر SQL> set serveroutput on

وهذه هي النتيجة
SQL> set verify off

SQL> /
Enter value for a: 49
Enter value for b: 7
Result Is  7

PL/SQL procedure successfully completed.


طيب في حالة اني قسمت على الرقم صفر ما هي النتيجة ...؟

SQL> /
Enter value for a: 15
Enter value for b: 0
 declare
*
ERROR at line 1:
ORA-01476: divisor is equal to zero
ORA-06512: at line 8

عند القسمة على صفر طلع لنا Error والمستخدم العادي لا يعرف لماذا هناك خطأ ولمعالجة هذا الموضوع نستخدم الــــ Exception كالتالي
SQL>  declare
  2   a number;
  3   b number;
  4   c number;
  5   begin
  6   a:=&a;
  7   b:=&b;
  8   c:=a/b;
  9   dbms_output.put_line('Result Is  '||c);
 10   exception
 11   when zero_divide then
 12	dbms_output.put_line('You Can Not Divide By Zero   ..');
 13  end;
 14  /
Enter value for a: 15
Enter value for b: 0
You Can Not Divide By Zero   ..

PL/SQL procedure successfully completed.

كتبنا في ال Exception رسالة للمستخدم انه لا يستطيع أدخال الرقم صفر في القسمة .

طيب في حالة غلط المستخدم وادخل بدل الرقم حرف ماذا يحصل ...؟
SQL> /
Enter value for a: 15
Enter value for b: 'm'
 declare
*
ERROR at line 1:
ORA-06502: PL/SQL: numeric or value error: character to number conversion error
ORA-06512: at line 7

عند أستخدام حرف بدل رقم طلع لنا Error والمستخدم العادي لا يعرف لماذا هناك خطأ ولمعالجة هذا الموضوع نستخدم الــــ Exception كالتالي
SQL> ed
  1   declare
  2   a number;
  3   b number;
  4   c number;
  5   begin
  6   a:=&a;
  7   b:=&b;
  8   c:=a/b;
  9   dbms_output.put_line('Result Is  '||c);
 10   exception
 11   when zero_divide then
 12	dbms_output.put_line('You Can Not Divide By Zero   ..');
 13	when value_error then
 14*  dbms_output.put_line('Pleas Enter Number   ..');
 15  end;
 16  /
Enter value for a: 15
Enter value for b: 'm'
Please Enter Number   ...

PL/SQL procedure successfully completed.

كتبنا في ال Exception رسالة للمستخدم انه لا يستطيع أدخال الا رقم ولا يستطيع أدخال حرف في القسمة .

طبعا كل سخص يصيغ الرسالة باسلوبه وبطريقة التي يراها مناسبة .

طبعا يوجد انواع اخرى من الـــError وحلولها وإن شاء الله في الدروس القادمة سنوضحها .

طبعا انا اسف لأني بطيئ في الشرح ولكن انا اريد ان أمشي خطوة خطوة والتاكد من وضوح كل خطوة .

اتمنى ان يكون اسلوبي سهل وسلس.

  • القصاص و hamdan alsbri معجبون بهذا

اللهم أغفر للمسلمين والمسلمات والمؤمينين والمؤمينات ألاحياء منهم وألاموات الى يوم الدين


موضوع قرأتة فأعجبني
http://www.shbab1.com/2minutes.htm

اذا عجبك موضوع من مواضيعي..لا تقل لي شكراً
و لكن أدعو لي (في ظهر الغيب) بالآتي

اللهم اغفر له ما تقدم من ذنبه و ما تأخر..اللهم احسن خاتمته
اللهم اغفر لوالديه و ارحمهما و ادخلهما جناتك برحمتك يا أرحم الراحمين و لكم بالمثل ان شاء الله
ارجو من الله ان يكون ما انقله لكم من ضمن حسناتى
 356663087.jpg

 

لا تأســــفنَّ عـلى غــــــدرِ الزمــانِ لطالــمـا

رقصـــــــت على جثــــثِ الأســــــــودِ كلابا

لا تحسبن برقصـــــها تعلوا على أســــيادها
تبقى الأســــودُ أسوداً والكـــــلابُ كِــــــلابا


#8 Ahmed_diab1983

Ahmed_diab1983

    مشترك

  • الأعضــاء
  • 144 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 19 December 2009 - 07:26 PM

اخى العزيز انا افضل لو هتنزل كتاب لتعليم PL/SQL من الالف للياء

يفضل يكون كتاب فى صورة doc او pdf ولا اية رأيكم ياخونا

وممكن تضع علية اسمك وتجعله للقراءة فقط للحفاظ على حقوق الناشر

وعندها تكون قمت بعمل عمل يحتذى به

وبالتوفيق ان شاء الله

إن الضربات التى لاتقصم ظهرك ................. تقويه .


Eng / Ahmed Diab - Computer Science B.C


Oracle Developer - Instructor



(علمت ان رزقى لن يأخذه غيرى فأطمئن قلبى)


#9 miash80

miash80

    عضو مميز

  • الأعضــاء
  • 794 مشاركة
  • الاسم الأول:mousa
  • اسم العائلة:hamdallah
  • البـلـد: Country Flag
  • الاهتمامات:Read
  • المنصب الحالي:Analyst Assistant

تاريخ المشاركة 19 December 2009 - 11:02 PM

اخى العزيز انا افضل لو هتنزل كتاب لتعليم PL/SQL من الالف للياء

يفضل يكون كتاب فى صورة doc او pdf ولا اية رأيكم ياخونا

وممكن تضع علية اسمك وتجعله للقراءة فقط للحفاظ على حقوق الناشر

وعندها تكون قمت بعمل عمل يحتذى به

وبالتوفيق ان شاء الله


اهلا وسهلا بأخي الفاضل احمد

اقتراحك على العين والراس

أخي العزيز بأمكانك عمل بحث على الانترنت وسترى الالف من الملفات التعليمة

من الالف الى الياء بأمكانك تنزيلها والاستفادة منها

اخي العزيز انا فكرتي تكمن في وضع درس درس والتطرق لكل كبيرة وصغيرة في كل درس

بأسلوب بسيط جداااا

مع وضع الامثلة التوضيحية ولن انتقل لدرس التالي الا اذا الدرس الاول أستوعيب بالكامل ...

أخي العزيز فكرة انا اضع اسم على كتاب غير واردة ابدا هذه الدروس لوجه الله تعالى

بل اتمنى اذا كان هذا الكتاب في النهاية يستحق النشر ان يقوم اي واحد بنقله ونشره

فإن شاء الله تكون صدقة جارية لكل واحد يعمل على نقله أو نشره .

اتمنى ان تفهم فكرتي

  • ABOHMAED معجب بهذا

اللهم أغفر للمسلمين والمسلمات والمؤمينين والمؤمينات ألاحياء منهم وألاموات الى يوم الدين


موضوع قرأتة فأعجبني
http://www.shbab1.com/2minutes.htm

اذا عجبك موضوع من مواضيعي..لا تقل لي شكراً
و لكن أدعو لي (في ظهر الغيب) بالآتي

اللهم اغفر له ما تقدم من ذنبه و ما تأخر..اللهم احسن خاتمته
اللهم اغفر لوالديه و ارحمهما و ادخلهما جناتك برحمتك يا أرحم الراحمين و لكم بالمثل ان شاء الله
ارجو من الله ان يكون ما انقله لكم من ضمن حسناتى
 356663087.jpg

 

لا تأســــفنَّ عـلى غــــــدرِ الزمــانِ لطالــمـا

رقصـــــــت على جثــــثِ الأســــــــودِ كلابا

لا تحسبن برقصـــــها تعلوا على أســــيادها
تبقى الأســــودُ أسوداً والكـــــلابُ كِــــــلابا


#10 @nana@

@nana@

    عضو نشط

  • الأعضــاء
  • 284 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Don't Say ,I Don't Know..But Try&& Error :(
    I Adore Oracle 4 Ever :D

تاريخ المشاركة 20 December 2009 - 01:59 AM

جزااااااااااااااك الله خيرااااااااااااااااااااااااااااا


FatmaElgzar
https://www.facebook...acleJavaAcademy

http://www.facebook....gDream.Computer
Try 2 Change Ur Life 2 The Best
---------------------------------------
ياحى ياقيوم برحمتك أستغيث ، أصلح لى شأنى كله ولاتكلنى الى نفسى طرفة عين .

حسبى الله لااله الا هو ، عليه توكلت وهو رب العرش العظيم
--------------------------------------------------
905527214.gif


#11 miash80

miash80

    عضو مميز

  • الأعضــاء
  • 794 مشاركة
  • الاسم الأول:mousa
  • اسم العائلة:hamdallah
  • البـلـد: Country Flag
  • الاهتمامات:Read
  • المنصب الحالي:Analyst Assistant

تاريخ المشاركة 20 December 2009 - 03:45 PM

جزااااااااااااااك الله خيرااااااااااااااااااااااااااااا


الله يبارك فيك اختي الفاضلة

ومشكورة على مرورك

:) :P ;)

اللهم أغفر للمسلمين والمسلمات والمؤمينين والمؤمينات ألاحياء منهم وألاموات الى يوم الدين


موضوع قرأتة فأعجبني
http://www.shbab1.com/2minutes.htm

اذا عجبك موضوع من مواضيعي..لا تقل لي شكراً
و لكن أدعو لي (في ظهر الغيب) بالآتي

اللهم اغفر له ما تقدم من ذنبه و ما تأخر..اللهم احسن خاتمته
اللهم اغفر لوالديه و ارحمهما و ادخلهما جناتك برحمتك يا أرحم الراحمين و لكم بالمثل ان شاء الله
ارجو من الله ان يكون ما انقله لكم من ضمن حسناتى
 356663087.jpg

 

لا تأســــفنَّ عـلى غــــــدرِ الزمــانِ لطالــمـا

رقصـــــــت على جثــــثِ الأســــــــودِ كلابا

لا تحسبن برقصـــــها تعلوا على أســــيادها
تبقى الأســــودُ أسوداً والكـــــلابُ كِــــــلابا


#12 miash80

miash80

    عضو مميز

  • الأعضــاء
  • 794 مشاركة
  • الاسم الأول:mousa
  • اسم العائلة:hamdallah
  • البـلـد: Country Flag
  • الاهتمامات:Read
  • المنصب الحالي:Analyst Assistant

تاريخ المشاركة 20 December 2009 - 04:07 PM

السلام عليكم ورحمة الله وبركاته

اليوم عنا مثال جديد ...

أريد كتابة برنامج اعطيه رقم الموظف ويعطيني أسمه وعنوانه

بسم الله نبدء


SQL> set serveroutput on
SQL> set verify off
SQL> declare
  2   v_ename emp.ename%type;
  3   v_sal   emp.sal%type;
  4   begin
  5   select ename,sal
  6   into v_ename,v_sal
  7   from emp
  8   where empno=&empno;
  9   dbms_output.put_line('Name '||v_ename||' Salary '||v_sal);
 10   end;
 11  /

 Enter value for empno: 7900
Name JAMES Salary 950

PL/SQL procedure successfully completed.

الحمدلله البرنامج شغال صح الصح

طيب لو على فرض المستخدم العادي قام بادخال رقم خطأ ماذا يحصل لنرى


SQL> /
Enter value for empno: 7903
declare
*
ERROR at line 1:
ORA-01403: no data found
ORA-06512: at line 5


طلع لنا Error والمستخدم العادي لا يعرف لماذا هناك خطأ ولمعالجة هذا الموضوع نستخدم الــــ Exception كالتالي

SQL> ed
Wrote file afiedt.buf

  1  declare
  2		v_ename emp.ename%type;
  3		v_sal   emp.sal%type;
  4		begin
  5		select ename,sal
  6		into v_ename,v_sal
  7		from emp
  8		where empno=&empno;
  9		dbms_output.put_line('Name '||v_ename||' Salary '||v_sal);
 10		exception
 11		when no_data_found then
 12		dbms_output.put_line('Employee Number Is Wrong Please Enter Correctt Number ...');
 13*	   end;
 14  /
Enter value for empno: 7966
Employee Number Is Wrong Please Enter Coreect Number ...

طيب لو انا حبيت اجيب اسماء ورواتب موظفين لدائرة ماذا افعل ...؟؟؟

الموضوع بسيط نعدل شوية في الكود ....

SQL> ed
Wrote file afiedt.buf

  1  declare
  2		v_ename emp.ename%type;
  3		v_sal   emp.sal%type;
  4		begin
  5		select ename,sal
  6		into v_ename,v_sal
  7		from emp
  8		where deptno=&deptno;
  9		dbms_output.put_line('Name '||v_ename||' Salary '||v_sal);
 10*	   end;
SQL> /
Enter value for deptno: 10
declare
*
ERROR at line 1:
ORA-01422: exact fetch returns more than requested number of rows
ORA-06512: at line 5

طلع لنا Error والمستخدم العادي لا يعرف لماذا هناك خطأ ولمعالجة هذا الموضوع نستخدم الــــ Exception كالتالي

SQL> ed
Wrote file afiedt.buf

  1  declare
  2		v_ename emp.ename%type;
  3		v_sal   emp.sal%type;
  4		begin
  5		select ename,sal
  6		into v_ename,v_sal
  7		from emp
  8		where deptno=&deptno;
  9		dbms_output.put_line('Name '||v_ename||' Salary '||v_sal);
 10		exception
 11		when too_many_rows then
 12		dbms_output.put_line('Resulat Too Many Rows ....');
 13*	   end;
SQL> /
Enter value for deptno: 10
Result Too Many Rows ....

PL/SQL procedure successfully completed.

طيب احنا حلينا مشكلة الـــError بس فعليا احنا ما حلنا المشكلة الاصلية وهي اريد ان ارجع اكثر من صف او سطر

جملة ال الــــ Select ترجع فقط صف او سطر واحد ولا تساعدني في حل هذه المشكلة .

أذا لحل هذه المشكلة احتاج للمتغير جديد يقوم بارجاع اكثر من صف او سطر .

والمتغير هذا هو الــــــ Cursor وهو موضوع بسيط جداااا جدااااا

سأبدء فيه أنشاء الله الدرس القادم اذا لم يكن هنالك اسئلة على ما سبق .

  • arjd معجب بهذا

اللهم أغفر للمسلمين والمسلمات والمؤمينين والمؤمينات ألاحياء منهم وألاموات الى يوم الدين


موضوع قرأتة فأعجبني
http://www.shbab1.com/2minutes.htm

اذا عجبك موضوع من مواضيعي..لا تقل لي شكراً
و لكن أدعو لي (في ظهر الغيب) بالآتي

اللهم اغفر له ما تقدم من ذنبه و ما تأخر..اللهم احسن خاتمته
اللهم اغفر لوالديه و ارحمهما و ادخلهما جناتك برحمتك يا أرحم الراحمين و لكم بالمثل ان شاء الله
ارجو من الله ان يكون ما انقله لكم من ضمن حسناتى
 356663087.jpg

 

لا تأســــفنَّ عـلى غــــــدرِ الزمــانِ لطالــمـا

رقصـــــــت على جثــــثِ الأســــــــودِ كلابا

لا تحسبن برقصـــــها تعلوا على أســــيادها
تبقى الأســــودُ أسوداً والكـــــلابُ كِــــــلابا


#13 sara gamal

sara gamal

    عضو نشط

  • الأعضــاء
  • 411 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 20 December 2009 - 05:38 PM

جزاك الله خيرا

#14 Amgad

Amgad

    مشرف عام ومشرف قسم تحليل النظم

  • الفريق الإداري
  • 4,558 مشاركة
  • الاسم الأول:امجد
  • اسم العائلة:حلمي
  • البـلـد: Country Flag
  • المنصب الحالي:Business Systems Analyst at al Fanar Co. Riyadh KSA

تاريخ المشاركة 21 December 2009 - 01:00 AM

السلام عليكم ورحمة الله

جهد متميز ,,, شكرا لك ... مرة اخرى

عودة قوية

بارك الله فيك
وجزاك خيرا

لا إله إلا الله الحليم الكريم
لا اله إلا الله العلى العظيم
لا اله إلا الله رب السماوات السبع و رب العرش العظيم
‏اللهم ارزقني قبل الموت توبة وعند الموت شهادة وبعد الموت جنة
اللهم ارزقني حسن الخاتمة
اللهم هون علينا سكرات الموت ... ونور علينا قبورنا
اللهم ارزقني الموت وأنا ساجد لك يا ارحم الراحمين
اللهم ثبتني عند سؤال الملكين
اللهم اجعل قبري روضة من رياض الجنة ولا تجعله حفرة من حفر النار
اللهم اني اعوذ بك من فتن الدنيا
اللهم ارحم ابائنا وامهاتنا واغفر لهما وتجاوز عن سيئاتهما وادخلهم فسيح جناتك ... والحقنا بهما يا رب العالمين
اللهم ارحم موتانا وموتى المسلمين واشفي مرضانا ومرضى المسلمين
اللهم اغفر للمسلمين والمسلمات والمؤمنين والمؤمنات الأحياء منهم والأموات
وبارك اللهم على سيدنا محمد صلى الله عليه وسلم
اللهم آمين ... اللهم آمين ... اللهم آمين


....


#15 miash80

miash80

    عضو مميز

  • الأعضــاء
  • 794 مشاركة
  • الاسم الأول:mousa
  • اسم العائلة:hamdallah
  • البـلـد: Country Flag
  • الاهتمامات:Read
  • المنصب الحالي:Analyst Assistant

تاريخ المشاركة 21 December 2009 - 01:28 PM

جزاك الله خيرا



الله يبارك فيكي اختي الفاضلة سارة

مشكورة على مرورك الطيب

  • masmas1001 معجب بهذا

اللهم أغفر للمسلمين والمسلمات والمؤمينين والمؤمينات ألاحياء منهم وألاموات الى يوم الدين


موضوع قرأتة فأعجبني
http://www.shbab1.com/2minutes.htm

اذا عجبك موضوع من مواضيعي..لا تقل لي شكراً
و لكن أدعو لي (في ظهر الغيب) بالآتي

اللهم اغفر له ما تقدم من ذنبه و ما تأخر..اللهم احسن خاتمته
اللهم اغفر لوالديه و ارحمهما و ادخلهما جناتك برحمتك يا أرحم الراحمين و لكم بالمثل ان شاء الله
ارجو من الله ان يكون ما انقله لكم من ضمن حسناتى
 356663087.jpg

 

لا تأســــفنَّ عـلى غــــــدرِ الزمــانِ لطالــمـا

رقصـــــــت على جثــــثِ الأســــــــودِ كلابا

لا تحسبن برقصـــــها تعلوا على أســــيادها
تبقى الأســــودُ أسوداً والكـــــلابُ كِــــــلابا