الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

استفسارات عن الفنكشنز والبروسيجرز

Featured Replies

بتاريخ:

1-ما الفرق بين الاكتشوال و الفورمال باراميترز؟ مع امثله لو سمحت


2-كيف اعمل كول او انفوك للفنكشن او البروسيجر؟؟ اتمنى شراح دقيق مع امثله لانني لم افهمها

  • بعد 3 أسابيع...
بتاريخ:

السلام عليكم ورحمة الله وبركاته
بالنسبة للسؤال الأول
البارامترات التي توضع عند كتابة البروسسيجر أو الفنكشن تسمى الفورمال باراميترز formal parametersمثال


create or replace procedure exampl_proc (p_id Number) IS
v_ename archar2(20);
BEGIN
select ename into v_ename from employees where employee_id = p_id;
dbms_output.put_line('employee id ' ||p_id|| 'employee Name: ' ||v_ename);
END


في هذا المثال البسيط p_id هي الفورمال باراميتر
أما الأكشوال اراميترز فهي التي تستخدم عند استدعاء ال بروسيجر او الفنكشن مثال

Execut exampl_proc(200)


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

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

1. باستخدام تعليمة EXECUTE ثم اسم البروسيجر والباراميترات إن وجدت كما في الثال السابق وتسخدم هذه التعليمة ضمن ال sql*plus أو sql developer

2. استدعاء البروسيجر ضمن بروسيجر أخر ويتم ذلك بكتابة اسم البروسيجر و باراميتراته إن وجدت وبدون كتابة EXECUTE فقط اسم البروسيجر
3. استدعاء البروسيجر ضمن ananymous Block ويتم ذلك مثل استدعاء بروسيجر ضمن بروسيجر أخر مثال


Begin
exampl_proc(300);



بالنسبة للفنكشن فهو مثل البروسيجر تقريبا إلا أنه يجب أن يرجع قيمة عند إنتهاءه لذلك يجب مراعاة هذه النقطة كتخزين القيمة المعادة في متحول أو طباعتها أو أو ...
مثال:


Declare
v_salary employees.salary%type;
begin
v_salary = Calculate_salary_Function(&employee_id);
dbms_output.put_line(&employee_id ||' earns ' ||v_salry);
End


في هذا المثال أفترضت وجود فنكشن يأخذ رقم الموظف و يرجع قيمة راتبه ومن ثم خزنت القيمة المعادة في متحول v_salary وطبعتها.
أرجو أن يكون الشرح واضح
أي استفسار تكرم :)

  • بعد 2 أسابيع...
بتاريخ:

جزاك الله عنا كل خير اخى فى الله

بتاريخ:

وإياكم أخي ramy_orcl

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

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

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

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

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

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.