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

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

صورة
- - - - -

درس إنشاء ال FUNCTION


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

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

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

    مشترك

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

تاريخ المشاركة 25 February 2004 - 04:46 AM

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


درس إنشاء ال 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.

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

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

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

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

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

أخوكم

شبيـــــه الريح
Sbeh_alreah@hotmail.com

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

www.araboug.org

ملفات مرفقة

  • ملف مرفق  FUNCTION.zip   118.01كيلو   1621 عدد مرات التحميل


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

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

    مشترك

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

تاريخ المشاركة 25 February 2004 - 04:57 AM

نسيت اخبركم اني ارفقت مع الشرح

ملف pdf يحتوي على هذى الشرح لمن اراد الاحتفاض به

تحياتي

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

#3 Guest_عادل الشهري_*

Guest_عادل الشهري_*
  • الزائرين

تاريخ المشاركة 25 February 2004 - 04:59 AM

الف الف شكر .. جزاك الله الف خير :rolleyes:


أخوك عادل

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

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

    مشترك

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

تاريخ المشاركة 25 February 2004 - 09:07 AM

هلا والله اخوي عادل

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

واتمنا ان الشرح اعجبك

تحياتي

#5 arab20002000

arab20002000

    عضو نشط

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

تاريخ المشاركة 25 February 2004 - 09:23 AM

مشكور

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

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

    مشترك

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

تاريخ المشاركة 25 February 2004 - 10:14 AM

لا شكرا على واجب اخوي arab20002000

#7 khaled

khaled

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 251 مشاركة

تاريخ المشاركة 25 February 2004 - 11:40 AM

رائع جدا جدا وطريقتك في الشرح اروع
خالد مبارك العوبثاني
اليمن-حضرموت
Email :Aboanter84@hotmail.com

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

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

    مشترك

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

تاريخ المشاركة 25 February 2004 - 12:00 PM

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

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

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

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

تحياتي

#9 ابوعبدالله

ابوعبدالله

    مشترك

  • الأعضــاء
  • 142 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Oracle HRMS

تاريخ المشاركة 25 February 2004 - 02:43 PM

مشكور جداً شبيه الريح ونحن في اتظار المزيد
والشرح اكثر من رائع
(وماأوتيتم من العلم إلا قليلا)

Oracle9i Database Administrator Certified Associate

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

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

    مشترك

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

تاريخ المشاركة 25 February 2004 - 03:17 PM

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

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

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

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

تحياتي

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

#11 TAREK ALHAMAD

TAREK ALHAMAD

    مشترك

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

تاريخ المشاركة 25 February 2004 - 05:06 PM

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

#12 عبدالله ندا

عبدالله ندا

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,017 مشاركة
  • الاسم الأول:عبدالله
  • اسم العائلة:ندا
  • البـلـد: Country Flag
  • المنصب الحالي:Technical Applications Manager

تاريخ المشاركة 25 February 2004 - 06:09 PM

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

في زمننا هذا .........................
ليس هناك قلب ناصع البياض ...
ولا قلب قاتم السواد ...
ولكن دائما
BLACK&WHITE

 

مع تحياتي
عبدالله ندا

http://anada.4shared.com

abdallahnada@hotmail.com 


#13 salama11433

salama11433

    عضو نشط

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

تاريخ المشاركة 26 February 2004 - 12:18 AM

مشكوررررررررر :rolleyes:
لا تبكى على ماضى لا يعود
salama ayad
samy32@msn.com
semsem11433@yahoo.com
Egypt - cairo

#14 John

John

    عضو نشط

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

تاريخ المشاركة 26 February 2004 - 01:44 AM

جميل جدا أخ شبية الريح
ننتظر الاروع :rolleyes:
Johnwahba2002@hotmail.com

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

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

    مشترك

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

تاريخ المشاركة 27 February 2004 - 06:43 AM

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

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

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

تحياتي لك

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