الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

درس انشاء ال FUNCTION

مغلق
بدأه شبيـــه الريح في 29 أبريل 2003 · 4 رد · 1,612 مشاهدة · في قواعد بيانات Oracle
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

بناء على طلب من أخي العزيز أبو سعد.

قمت بشرح طريقه إنشاء ال 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.

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

ولقد وضعت نسخه من الشرح بصيغه bdf لمن اراد الاحتفاض به

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

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

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

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

أخوكم

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

Sbeh_alreah@hotmail.com

function.zip

#2

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

شكراً للاخ شبيـــه الريح :)(f)

على هذا الشرح المفصل وبارك الله لك

#3

هلا اخوي سمير محمد

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

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

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

اخوك

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

#4

ما شاء الله ...

جزاك الله خيراً...أخي العزيز ، و نفع المسلمين بعلمك.

(f)

#5

هلا اخوي ayman_zaki

الحمدلله انه اعجبك

وإن شاء الله فيه دروس جديدة تحت الطريق

وبأنتظار تفاعل الاخوان

تحياتي لك

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

هذا الموضوع مغلق.

مواضيع مشابهة