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

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

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

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


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

#16 miash80

miash80

    عضو مميز

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

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

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

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

عودة قوية

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


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

شكر وعرفان للأستاذ الكبير أمجد للتثبيت الموضوع

الله يبارك فيك أستاذنا الفاضل

اتمنى ان اكون عند حسن ظنك أستاذي الفاضل

وأرجوا منك أستاذ أمجد متابعة الدروس للتصحيحي ان أخطأت

جلّ من لا يسهو

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


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

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

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

 

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

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

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


#17 miash80

miash80

    عضو مميز

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

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

اليوم أنشاء الله سنشرح الــــــ Cursor

الــــــــ Cursor هو عبارة عن جملة Select نستطيع من خلالها نرجع اكثر من صف او سطر

بعكس جملة الـــــ Select العادية التي لا نستطيع من خلالها الا أرجاع سطر او صف واحد

كيف نكتب الــــــ Cursor ....؟

الموضوع بسيط جدااااااااااا كالتالي

بسم الله نبدء



Cursor Cursor-Name  is	Cursor  اجياري ان تكتب بعد أسم الــ is طبعا	Cursor  هنا عرفنا الـــ 
select columns name		Cursor هنا حددنا الحقول التي اريدها ان تظهر من خلال الـــ 
From Table-Name;			Cursor تحديد أسم الجدول صاحب الحقول التي ستظهر من خلال الــ 
Open Cursor-Name;		  Cursor	هنا قمنا بفتح الــ 
Fetch Cursor-Name		   بسحب البيانات صف صف Cursor هنا يقوم الــ 
Into Variables Name;		 بوضع البيانات التي سحبها في المتغيرات صف صف Cursor هنا يقوم الــ
Close Cursor-Name;		 Cursor  هنا قمنا بأغلاق الـــــ


طبعا الــــــــــــــــ Cursor يعرف كأي متغير في مرحلة Declaration

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

وجربنا جملة الــــ Select العادية ولكنها لم تفلح لأن جملة الـــ Select العادية لا تسطيع ان تعطي الا سطر واحد

ولحل هذه المشكلة سنقوم بأستخدام الـــــ Cursor الذي يستطيع ان يعطي سطر او اكثر من سطر .

والحل كما يلي .

SQL>Set serveroutput on
SQL>Set verify off
SQL> declare
  2   cursor cur_emp  is select ename,sal
  3   from emp
  4   where deptno=&deptno;
  5   v_ename varchar2(50);
  6   v_sal   number;
  7   begin
  8   open cur_emp;
  9   fetch cur_emp
 10   into v_ename,v_sal;
 11   close cur_emp;
 12   dbms_output.put_line('Name  '||v_ename||'   Salary  '||v_sal);
 13*  end;
 14  /
Enter value for deptno: 10
Name  CLARK salary  2450

PL/SQL procedure successfully completed.

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

بس هنا مشكلة بسيطة الـــCursor قام بعرض فقط اول صف من البيانات ولم يكمل ...لماذا...؟

المشكلة ليست بالـــــCursor لانه قام بوظيفته على اكمل وجه

لانه قام بسحب اول صف من الجدول وقام بعرضه

وتوقف عند هذه النقطة لانه لا يوجدامر يخبره انه يجب عليه الانتقال لصف التالي .

اذا عرفنا وين المشكلة نريد امر يجبر الــــ Cursor الانتقال لصف التالي

هل تعرفون ما هو هذا الامر ....!!!

أنه بسيط جداااا نحن بحاجة للحلقة يبقى الـــ Cursor يعمل فيها لنهاية أخر سطر

ومن الشرح السابق للحلقات الحلقة المناسبة لهذه الحالة هي الـــــ Loop

سنقوم بالتعديل على الكود وأستخدام حلقة الـــ Loop


SQL> ed
Wrote file afiedt.buf

  1  declare
  2   cursor cur_emp is select ename,sal
  3   from emp
  4   where deptno=&deptno;
  5   v_ename varchar2(50);
  6   v_sal   number;
  7   begin
  8   open cur_emp;
  9   loop
 10   fetch cur_emp
 11   into v_ename,v_sal;
 12   exit when cur_emp%notfound;
 13   dbms_output.put_line('Name  '||v_ename||' salary  '||v_sal);
 14   end loop;
 15   close cur_emp;
 16*  end;
SQL> /
Enter value for deptno: 10
Name  CLARK salary  2450
Name  KING salary  5000
Name  MILLER salary  1300

PL/SQL procedure successfully completed.

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

طيب لو على فرضنا اريد اكثر من حقل رقم واسم وراتب وتاريخ ميلاد الموظف

او حتى على فرض اريد جميع الحقول الخاصة بالموظف

في هذه الحالة يجب ان اعرف لكل حقل متغير خاص به فلذلك الامر متعب و مزعج جدااا

حل هذه المشكلة بسيط جداااااااااا

أستخدم متغير يأخذ جميع مواصفات الحقول الموجودة داخل الـــ Cursor

ويستطيع التعامل مع جميع البيانات الموجودة داخل الــ Cursor

واعرف هذا المتغير داخل الـــDeclaration واحدد نوع البيانات فيه بأسم الـــCursor

سنقوم بالتعديل على الكود وأستخدام هذا المتغير كتالي .

SQL> ed
Wrote file afiedt.buf

  1  declare
  2   cursor cur_emp is select ename,sal
  3   from emp
  4   where deptno=&deptno;
  5   v_cur  cur_emp%rowtype;
  6   begin
  7   open cur_emp;
  8   loop
  9   fetch cur_emp
 10   into v_cur;
 11   exit when cur_emp%notfound;
 12   dbms_output.put_line('Name  '||v_cur.ename||' salary  '||v_cur.sal);
 13   end loop;
 14   close cur_emp;
 15*  end;
SQL> /
Enter value for deptno: 10
Name  CLARK salary  2450
Name  KING salary  5000
Name  MILLER salary  1300

PL/SQL procedure successfully completed.




مثال اخر اريد ان اكتب برنامج اعطيه رقم القسم ويعطيني اسماء ورواتب الموظفين مع اسماء الوظائف في هذا القسم

سنقوم بتعديل على الكود كالتالي .

SQL> ed
Wrote file afiedt.buf

  1  declare
  2   cursor cur_emp is select *	  هنا اخبرته اريد جميع الحقول
  3   from emp
  4   where deptno=&deptno;
  5   v_cur cur_emp%rowtype;
  6   begin
  7   open cur_emp;
  8   loop
  9   fetch cur_emp
 10   into v_cur;
 11   exit when cur_emp%notfound;
 12   dbms_output.put_line('Name  '||v_cur.ename||' salary  '||v_cur.sal||'  Job  '||v_cur.job);  هنا طلبت منه فقط اسم وراتب الموظف مع اسم وظيفته
 13   end loop;
 14   close cur_emp;
 15*  end;
SQL> /
Enter value for deptno: 10
Name  CLARK salary  2450  Job  MANAGER
Name  KING salary  5000  Job  PRESIDENT
Name  MILLER salary  1300  Job  CLERK

PL/SQL procedure successfully completed.


هذا المتغير سهل علي كثير من الامور واستخدامه سهل وضروري جدااااا .

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

بس عندي مشكلة ومشكلة كبيرة

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

الامر متعب ومزعج جدااااااااا وخصوصا اذا كان عندي جداول كبيرة

كيف احل هذه المشكلة الكبيرة .........؟

الحل سهل وبسيط جدااااااااااا.

اكتب برنامج بس من نوع تاني

برنامج له اسم ويخزن في قاعدة البيانات ويمرر له بارميتر

ويرجع لي قيمة معينة ويقوم بأكثر من عملية في البرنامج الواحد

وأستطيع استدعائه في اي وقت انا بحاجته واقوم بتنفيذه

هذا البرنامج الجديد صاحب هذه المواصفات العالية هو الــــــــــــــــــ Procedure

وسنقوم بشرحه في الدرس القادم أنشاء الله .

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

  • alhafiz معجب بهذا

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


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

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

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

 

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

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

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


#18 miash80

miash80

    عضو مميز

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

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

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

أسف اخواني عن الانقطاع عن تكملة اعطاء الدروس

غدا إن شاء الله سأبدء في شرح Procedure



;) :angry: :angry:

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


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

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

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

 

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

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

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


#19 deamon

deamon

    عضو

  • الأعضــاء
  • 10 مشاركة

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

الأخ الفاضل miash80 أششكرك كثيرا على هذا المجهود الرائع وأتمن منك المتابعة بسرعة طبعا أنا عضو جديد وأيضا جديد على pl/sql وعندي بعض الأسئلة لكن أرحو الآن أن تكمل ال procedure.

#20 deamon

deamon

    عضو

  • الأعضــاء
  • 10 مشاركة

تاريخ المشاركة 02 January 2010 - 11:06 AM

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

أسف اخواني عن الانقطاع عن تكملة اعطاء الدروس

غدا إن شاء الله سأبدء في شرح Procedure



:D ;) ;)


شكرا لك الأخ الفاضل miash80 لكن متى بالضبط أرجو ان تستجيب

#21 miash80

miash80

    عضو مميز

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

تاريخ المشاركة 03 January 2010 - 03:10 PM

الأخ الفاضل miash80 أششكرك كثيرا على هذا المجهود الرائع وأتمن منك المتابعة بسرعة طبعا أنا عضو جديد وأيضا جديد على pl/sql وعندي بعض الأسئلة لكن أرحو الآن أن تكمل ال procedure.



اهلا وسهلا بك أخي العزيز وانا اسف على التأخير

وبالتوفيق أخي العزيز

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


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

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

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

 

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

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

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


#22 miash80

miash80

    عضو مميز

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

تاريخ المشاركة 03 January 2010 - 04:18 PM

اليوم إن شاء الله سأبدء في شرح Procedure

بسم الله نبدء



Create [Or Replace] Procedure Procedure-Name   هنا نقوم بأنشاء الاجراء  
(P1 in Number,P2 out Varchar2,P3 in out date....) هنا نقوم بتعريف البراميتر  
Is   كلمة اجبارية  
Variables   Decleration Section هذا الجزء من البرنامج يعرف فيه المتغيرات بأنواعها   

Begin   (Mandatory)  بداية الاجراء  وهذا الجزء أجباري

Eexcutable Section	هنا يكتب كود البرمجة الخاص بالبرنامج 
Pl/Sql Code

.
.
.
[Exception]  (Optional)هذا الجزء خاص بمعالجة أخطاء الاجراء وهو أختياري	 
.
.
.
End [Procedure-Name];  (Mandatory)  نهاية البرنامج وهذا الجزء أجباري



الكلمات بين [ ] اختيارية الكتابة

[Or Replace] تكتب لكي نستطيع التعديل على الاجراء في المستقبل وبدونها لا نستطيع التعديل على الاجراء

[Procedure-Name] كتابة اسم الاجراء عند نهاية الاجراء اختيارية



P1,P2,P3 هذه عبارة عن براميتر نمررها عبر الاجراء وهي عبارة عن ثلاث انواع كما يلي



Prameter Type:

Name	   Mode	  data Type
P1			 In		   Number,Varchar2,Date ....Ext
P2			 Out		 Number,Varchar2,Date ....Ext
P3			 In Out   Number,Varchar2,Date ....Ext



البراميتر من In يقوم هذا البراميتر بأدخال قيمة للـــ Procedure

البرامتير من Out يقوم هذا البراميتربالاحتفاظ بقيمة معينة من ال Procedure وأخراجها

البراميتر من In Out يقوم هذا البراميتر بأدخال قيمة معينة على الــ Procedure ويقوم الــ Procedure بتنفيذ الاوامر الموجودة

داخله وأخراج قيمة جديدة للبراميتر الذي قمنا بأدخاله



بعض الملاحظات على البراميتر

طبعا من المهم جداااا عدم تحديد حجم انواع البيانات في البراميتر يحدد فقط نوع البيانات

اذا ما حددنا نوع Mode ياخذ نوع الــ MOde مباشرة In

لا نستطيع عمل لي تعديل على البراميتر من نوع In داخل الـــ Procedure

ونستطيع التعديل على البراميتر من نوع الـــ out ومن نوع In Out

عند أخراج قيمة مباشرة من الـــ Procedure على الشاشة ليس بحاجة للبراميتر

من نوع Out فأمر الطباعة يكفي في هذه الحالة



سنبدء في مثال صغير للكتابة الــــــــــProcedure

اريد ان اكتب Procedure يقوم بوظيفة Print

بدل من كتابة dbms_output.put_line();

في كل مرة اريد ان استخدم فيها الطباعة

بسم الله نبدء



SQL> set serveroutput on
SQL> set verify off
SQL> create or replace procedure print(p_text in varchar2)
  2  is
  3  begin
  4  dbms_output.put_line(p_text);
  5* end;
SQL> /

Procedure created.



وهنالك نوعين من الاستدعاء


طريقة Pl/Sql

begin
print(' ');
end;


طريقة Sql

execute print(' ');

طبعا نستخدم طريقة الــSql فقط في حالة اذا كان البراميتر من نوع In


مثال جديد اريد ان أستخدم فيه براميتر من نوع In .


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

SQL>  create or replace procedure get_info(p_deptno in number)
  2  is
  3  cursor cur_emp is
  4  select *
  5  from emp
  6  where deptno=p_deptno;
  7  v_cur cur_emp%rowtype;
  8  begin
  9  open cur_emp;
 10  loop
 11  fetch cur_emp
 12  into v_cur;
 13  exit when cur_emp%notfound;
 14  print('Name '||v_cur.ename||'  Salary '||v_cur.sal);
 15  end loop;
 16  close cur_emp;
 17* end;
SQL> /

Procedure created.

طريقة أستدعاء Procedure فيه براميتر من نوع In .

SQL> begin
  2  get_info(&p_deptno);
  3  end;
  4  /

Enter value for p_deptno: 10
Name CLARK  Salary 2450
Name KING  Salary 5000
Name MILLER  Salary 1300

PL/SQL procedure successfully completed.


مثال جديد أريد ان أستخدم فيه براميتر من نوع Out.


اريد ان اكتب Procedure اعطيه رقم الموظف ويعطيني اسم الموظف مع أسم قسمه واريد ان احتفظ بأسم الموظف مع اسم القسم في متغير

SQL> create or replace procedure get_name(p_empno in number,p_ename out varchar2,p_dname out varchar
2)
  2  is
  3  cursor cur_emp is
  4  select ename,dname
  5  from emp e ,dept d
  6  where e.deptno=d.deptno
  7  and   e.empno=p_empno;
  8  begin
  9  open cur_emp;
 10  fetch cur_emp
 11  into p_ename,p_dname;
 12  if cur_emp%notfound then
 13  p_ename:='No Name';
 14  p_dname:='No Dname';
 15  end if;
 16  close cur_emp;
 17  end;
 18  /

Procedure created.

طريقة أستدعاء Procedure فيه براميتر من نوع Out .

يجب يجب يجب ان نعرف لكل براميتر من نوع Out متغير نضع فيه قيمة البراميتر

SQL> declare
  2  v_ename varchar2(100);
  3  v_dname varchar2(100);
  4  begin
  5  get_cur(&p_empno,v_ename,v_dname);
  6  print('Name '||v_ename||' Dname '||v_dname);
  7  end;
  8  /
Enter value for p_empno: 7900


Name JAMES Dname SALES

PL/SQL procedure successfully completed.


مثال جديد اريد ان أستخدم فيه براميتر من نوع In Out

أريد ان اعطيه رقم معين واريد ان يخرج هذا الرقم بفورمات معينة .

SQL> create or replace procedure phone(p_num in out varchar2)
  2  is 
  3  begin
  4  p_num:='('||substr(p_num,1,3)||').'||substr(p_num,4);
  5  end;
  6  /

Procedure created.

طريقة أستدعاء Procedure فيه براميتر من نوع In Out .

SQL> declare 
  2  v_num varchar2(100);
  3  begin
  4  v_num:=&v_num;
  5  print(v_num);
  6  end;
  7  /
Enter value for v_num: 796690462

(796).690462

PL/SQL procedure successfully completed.


مثال جديد اريد ان أستخدم فيه خاصية الاضافة


اريد ان اكتب Procedure يقوم باضافة أسم وموقع القسم في جدول الاقسام


QL> create or replace procedure insert_dept (p_dname in dept.dname%type,p_loc in dept.loc%type)
  2  is
  3  v_deptno number;
  4  begin
  5  select max(deptno)
  6  into v_deptno
  7  from dept;
  8  v_deptno:=v_deptno+10;
  9  insert into dept
 10  values(v_deptno,p_dname,p_loc);
 11  commit;
 12* end;
SQL> /

Procedure created.

طريقة الاستدعاء


SQL> begin
  2  insert_dept('Finance','Amman');
  3  end;
  4  /

PL/SQL procedure successfully completed.

ولتأكد من انه اضاف البيانات الجديدة

SQL> select *
  2  from dept;

   DEPTNO DNAME		  LOC
--------- -------------- -------------
	   10 ACCOUNTING	 NEW YORK
	   20 RESEARCH	   DALLAS
	   30 SALES		  CHICAGO
	   40 OPERATIONS	 BOSTON
	   50 Finance			Amman


طيب في حالة اريد ان اضيف اسماء اقسام جديدة

وكلها موجودة في موقع واحد ولا اريد ان اكرر في كل مرة اسم الموقع

الموضوع بسيط جدا جدا جدا في الدرس القادم مع تكلمة الشرح لموضوع الـــ Procedure

تم التعديل بواسطة miash80, 03 January 2010 - 04:20 PM.

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


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

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

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

 

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

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

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


#23 Amgad

Amgad

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

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

تاريخ المشاركة 03 January 2010 - 08:14 PM

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

شرح مبسط وواضح .... شكرا لك على الجهد


ارجوا كتابة الاوامر التى تسترجع اسماء ال procedures التى سبق انشاؤها ...

وايضا كتابة امر الغاء ال procedures التى سبق انشاؤها

وايضا كتابة امر استرجاع محتويات الprocedure السابق انشاؤها


استمر ... وبارك الله فيك

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


....


#24 miash80

miash80

    عضو مميز

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

تاريخ المشاركة 04 January 2010 - 01:41 AM

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

شرح مبسط وواضح .... شكرا لك على الجهد


ارجوا كتابة الاوامر التى تسترجع اسماء ال procedures التى سبق انشاؤها ...

وايضا كتابة امر الغاء ال procedures التى سبق انشاؤها

وايضا كتابة امر استرجاع محتويات الprocedure السابق انشاؤها


استمر ... وبارك الله فيك


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

الله يبارك فيك أستاذ أمجد

مشكور على المتابعة

أستاذ امجد انا لم أنهي درس الـــــــProcedure

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

كتابة الاوامر التى تسترجع اسماء ال procedures التى سبق انشاؤها ...

وايضا كتابة امر الغاء ال procedures التى سبق انشاؤها

وايضا كتابة امر استرجاع محتويات الprocedure السابق انشاؤها

وأتمنى ان تتابع هذه الدروس للتقويمي اذا أخطأت

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

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


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

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

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

 

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

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

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


#25 @nana@

@nana@

    عضو نشط

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

تاريخ المشاركة 04 January 2010 - 02:31 AM

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


بجد شرح رائع


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

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

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


#26 miash80

miash80

    عضو مميز

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

تاريخ المشاركة 04 January 2010 - 01:20 PM

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


بجد شرح رائع


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

وأنشاء الله تستفيدي من هذه الدروس


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


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

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

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

 

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

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

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


#27 deamon

deamon

    عضو

  • الأعضــاء
  • 10 مشاركة

تاريخ المشاركة 05 January 2010 - 01:01 PM

:D ;) ;) :lol:

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



#28 deamon

deamon

    عضو

  • الأعضــاء
  • 10 مشاركة

تاريخ المشاركة 05 January 2010 - 01:06 PM

أخي في هذا الكود ليش عملت هيك عند مثال استخدامك للمتعير من نوع
OUT


5 from emp e ,dept d
6 where e.deptno=d.deptno
7 and e.empno=p_empno;

تم التعديل بواسطة deamon, 05 January 2010 - 01:08 PM.


#29 miash80

miash80

    عضو مميز

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

تاريخ المشاركة 05 January 2010 - 01:21 PM

أخي في هذا الكود ليش عملت هيك عند مثال استخدامك للمتعير من نوع
OUT


5 from emp e ,dept d
6 where e.deptno=d.deptno
7 and e.empno=p_empno;


اخي أو أختي الكريمة ممكن توضح سؤالك اكثر

هل تقصد لماذا استخدمت براميتر من نوع Out ....؟

او هل تقصد لماذا استخدمت جدولين مع الربط بينهم بجملة شرط ...؟

او تقصد شيئ ثاني ....

أرجو التوضيح



:D ;) ;)


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


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

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

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

 

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

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

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


#30 deamon

deamon

    عضو

  • الأعضــاء
  • 10 مشاركة

تاريخ المشاركة 05 January 2010 - 01:49 PM

نعم ما سبب عملية الربط بتلك الطريقة ومشكور