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

درس إنشاء ال FUNCTION


شبيــــه الريح

Recommended Posts

بسم الله الرحمن الرحيم



درس إنشاء ال FUNCTION



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

أهديكم أحبتي شرح طريقه إنشاء ال FUNCTION بشي من التفصيل فأرجو من الله أن يعجبكم

في البداية يجب أن نعرف:

1- ماهو ال FUNCTION: هو PL/SQL Block تستطيع إعطائه متغير أو أكثر ويقوم بأسترجع متغير واحد فقط.


2- إنشاء ال FUNCTION:

CREATE [OR REPLACE] FUNCTION function_name
( argument1 IN datatype1,
 argument2 IN datatype2,
  ……)
RETURN datatype
IS 
PL/SQL Block;



3-الشرح:
1- إذا كان هناك FUNCTION منشئه سابقا ولها نفس الاسم وتريد حذف ال FUNCTION السابقة واستبدالها بالجديدة نستخدم OR REPLACE

2- نقصد بال function_name هي اسم FUNCTION.

3- نقصد بال argument هي اسم المتغير الذي تريد إنشائه.

4- نقصد بال IN أن هذى المتغير سوف ترسل قيمته من خارج ال FUNCTION.

5- نقصد بال datatype هو نوع المتغير الذي نريد تعريفه.

6-نقصد بال RETURN datatype هو نوع المتغير الذي سوف يتم استرجاعه.

7- نقصد بال PL/SQL Block هو ال Body لل FUNCTION.

4- مثال على ال FUNCTION.:


SQL> CREATE OR REPLACE FUNCTION get_sal
             (v_id  IN NUMBER)
             RETURN NUMBER
          IS
             v_salary  NUMBER :=0;
          BEGIN SELECT sal
              INTO v_salary FROM EMP WHERE empno = v_id;
               RETURN (v_salary);
         END get_sal;
         /


5- عمل المثال :

يقوم هذى ال FUNCTION بأسترجع الراتب لموظف معين .

6- تنفيذ المثال:

في البداية نقوم بتعريف متغير لكي نخزن فيه الراتب ولكي نتمكن من طباعته :

SQL> VARIABLE g_salary NUMBER



ثم نقوم بتنفيذ ال FUNCTION مع تحيد رقم الموظف ومكان تخزين الراتب:

SQL>EXECUTE :g_salary := get_sal ( 7934 )



ثم نقوم بطباعه المتغير الذي أسمينه g_salary ويحتوي على قيمه الراتب للموظف رقم 7934:

SQL>PRINT g_salary



7- مثال آخر:

SQL>CREATE OR REPLACE FUNCTION dollars_of_rs  
             RETURN NUMBER
          IS
            v_dollars_of_rs  NUMBER :=3.75;
          BEGIN RETURN (v_dollars_of_rs);
         END dollars_of_rs;
         /



8- عمل المثال :

يقوم هذى ال FUNCTION بإرجاع قيمه الريال السعودي بالنسبة للدولار.


9- تنفيذ المثال:في البداية نقوم بتعريف متغير لكي نخزن قيمه الريال ولكي نتمكن من طباعته:

SQL> VARIABLE g_rs NUMBER



ثم نقوم بتنفيذ ال FUNCTION مع تحديد مكان تخزين قيمه الريال:

SQL>EXECUTE :g_rs := dollars_of_rs  ;


ثم نقوم بطباعه المتغير الذي أسمينه g_rs :

SQL>PRINT g_rs



10- مثال آخر:

SQL>CREATE OR REPLACE FUNCTION dollars_to_rs 
             (v_dollars IN NUMBER)
             RETURN NUMBER
          IS
            v_ rs  NUMBER :=0;
          BEGIN v_ rs := v_dollars * 3.75;   
         RETURN (v_rs);
         END dollars_to_rs;
         /


11- عمل المثال :

يقوم هذى ال FUNCTION بإرجاع قيمه الريال السعودي بالنسبة للدولار ولكن يختلف عن السابق بأنه يجب أن ترسل له عدد الدولارات لكي يقوم بحساب كم ريال تساوي.



12- تنفيذ المثال:في البداية نقوم بتعريف متغير لكي نخزن قيمه الريال ولكي نتمكن من طباعته:

SQL> VARIABLE g_rs NUMBER


ثم نقوم بتنفيذ ال FUNCTION مع تحديد مكان تخزين قيمه الريال:

SQL>EXECUTE :g_rs := dollars_to_rs ( 1000 )  ;


ثم نقوم بطباعه المتغير الذي أسمينه g_rs :

SQL>PRINT g_rs


13- حذف ال FUNCTION:

SQL> DROP FUNCTION function_name;


15- مثال:

SQL> DROP FUNCTION get_sal;



هذى ما استطعت شرحه من ال FUNCTION.

أرجو من الله القدير أن يكون حاز على رضى الله ثم رضاكم

وأرجو منكم الدعاء لي بالتوفيق في الدنيا والآخرة

وأي استفسار أنا بالخدمة

هذى والله اعلم

تحياتي الخالصة لك



أخوكم

شبيـــــه الريح
[email protected]

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

www.araboug.org

FUNCTION.zip

رابط هذا التعليق
شارك

  • الردود 25
  • البداية
  • اخر رد

أكثر المشاركين في هذا الموضوع

  • شبيــــه الريح

    10

  • ابوعبدالله

    1

  • arab20002000

    1

  • khaled

    1

أكثر المشاركين في هذا الموضوع

هلا والله بالغالي ابو مبارك

لا يوجد اروع من ردك

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

وان شاء الله الباقي بالطريق

تحياتي

رابط هذا التعليق
شارك

هلا والله بالغالي أبو عبدالله

لا شكرا على واجب

وان شاء الله الجاي اروع

بس ياليت تحددون المواضيع المحتاجه إلى شرح

تحياتي

شبيــــــــــــه الريح

رابط هذا التعليق
شارك

و الله ولا أجمل ولا أروع من كده
أسلوبك فى الشرح جميل وكمان الموضوع أجمل و أجمل
الف الف شكر يا اخى شبيــــه الريح
الى الامام دائما باذن الله ..... يا ريت تستمر فى الشرح خصوصا فى كل ما يتعلق بال pl/sql وفقك الله لما فيه الخير لك ولنا جميعا

رابط هذا التعليق
شارك

الف شكر للاخ المتميز دائما شبيــــه الريح
موضوع رائع و اتمني مواصلة شروح بنفس المستوي
تمنياتي بالتوفيق

رابط هذا التعليق
شارك

هلا والله اخوي TAREK ALHAMAD

اشكرك كل الشكر على كلامك الرائع جدا

وان شاء الله القادم اجمل

تحياتي لك

شبيــــــــه الريح

رابط هذا التعليق
شارك

هلا والله بالغالي black&white

لا شكرا على واجب

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

لكي نجعله في المقدمه

تحياتي لك

شبيــــــــــه الريح

رابط هذا التعليق
شارك

  • بعد 5 شهور...
  • بعد 1 شهر...
  • بعد 2 أسابيع...
  • بعد 2 شهور...

الاخ الفاضل
تحية طيبة لك وجزيل الشكر لك والي الامام دوما افادك الله من علمك ويعجز اللسان عن الشكر
على صابر
[email protected]

رابط هذا التعليق
شارك

  • بعد 2 أسابيع...

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل



×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية