الانتقال إلى المحتوى
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.

دروس للمبتدئين في تعلم الPL/SQL

Featured Replies

بتاريخ:

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

سوف أقدم هنا بإذن الله بعض الدروس للمبتدئين في تعلم الPL/SQL
وهي دروس كنت قد بدات بها بتعلم الPL/SQL أثناء دراستي للأوراكل

لنبدء على بركة الله :-

قم بتشغيل الSQL Plus وقم بتسجيل الدخول بالمستخدم scott مثلا .

في كل مره تريد ان تعمل على الPL/SQL من خلال الSQL Plus يجب ان تنفذ الكود
التالي مره واحده فقط وهو مسؤول عن ظهور نتيجه أوامر الPL/SQL التى ستنفذها .

" لو قمت بإقفال الSQL Plus وفتحته من جديد فستحتاج لتنفيذ الكود مره أخري"

والكود هو :-

set serveroutput on;




الدرس الاول :- لتقسيم قيمتين والحصول على النتيجه .

====================================
DECLARE
A NUMBER;
B NUMBER;
C NUMBER;
BEGIN
A:=10;
B:=5;
C:=A/B;
DBMS_OUTPUT.PUT_LINE(C);
END;
/
====================================
وستكون النتيجة كالتالي :-

2

PL/SQL procedure successfully completed.



عمر باعقيل
كندا - مونتريال
[email protected]

  • الردود 30
  • المشاهدات 17.5k
  • البداية
  • اخر رد

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

بتاريخ:

السلام عليكم اخوي عمر ما شاء الله عليك على شرحك وعلى دروسك الاكثر من رائعه لا هنا ولا في منتدى الفريق العربي للبرمجه ما اقول غير ماشاء الله بس والف تحيه لك اخوي

بتاريخ:

مشكور على الدرس

بتاريخ:

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

بتاريخ:

بسم الله الرحمن الرحيم
تحية طيبة وبعد
مشكور اخي العزيز على هه الدروس

مع تحياتي ...

بتاريخ:

مشكور و ان شاء الله نشوف سلسله كامله من دروس الـ SQL & PL/SQL

بتاريخ:

اخوى عمر مشكور ع الدرس ... وبصراحه انا مبتدئه في البي ال اس كيو ال ... وعندي سؤال ..

set serveroutput on; ليش نحتاج نستخدم هالكوماند دايما ع الرغم انه في الاس كيو ال ماكنا نستخدمها ....!

DBMS_OUTPUT.PUT_LINE©;
هنيه انا فهمت انه DBMS_OUTPUT اوبجكت يمكنا من استخدام الفانكشن PUT_LINE فهل هناك طرق اخرى لاظهار الناتج غي هالطريقه ... ؟!

وسوري ع التطويل ..
اورا ..

بتاريخ:

الى الامام عمر :)


أخوك Oracle

بتاريخ:

هيا ياأستاذ عمر نحن في إتتظار باقي الدروس :)

تم تعديل بواسطة عمر باعقيل

بتاريخ:

الاخ العزيز عمر
وفقك الله و الي الافضل دائما
و بعد اذنك اريد ان اجاوب علي سؤال الاخت ora
بالطبع توجد عدة وسائل لاظهار الناتج
و لكن ليست في السكول بلس
و dbms_outputهي باكيدج من الاوراكل تستعمل لاغراض طباعة السطور علي الشاشة
و اذا كانت المشكلة في كتابة امر set serveroutput on
فانه يوجد ملف اسمه log in.sql ستجدونه في فولدر DBS بداخل فولدر الهوم للديفلوبر
يمكن في هذا الملف كتابة هذا الامر مرة واحدة فقط
حتي لا نضطر لكتابته مرة اخري عند بدء السكول بلس
و الله اعلم [/color]

تم تعديل بواسطة عمر باعقيل

بتاريخ:

hanon_OCP la ... مشكور اخوى ع الرد ... وصراحه ماعندي خبره بالبي ال اس كيو ال ... فاحاول اربط بينه وبين البرمجه العاديه كالجافا والسي ++

بتاريخ:
  • كاتب الموضوع

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

الدرس الثاني :- لتغيير طريقة إدخال القيم المراد تقسيمها في كود الPL/SQL السابق
فقط مانحتاجه هو تنفيذ الكود من جديد مره واحده فقط " بعد التعديل عليه " وعن طريق أمر RUN أو R أو / وسيطلب منا إدخال القيم المراد تقسيمها وتظهر نتيجه التقسيم وسيصبح كود الPL/SQL كالتالي :-

DECLARE
A NUMBER;
B NUMBER;
C NUMBER;
BEGIN
A:=&A;
B:=&B;
C:=A/B;
DBMS_OUTPUT.PUT_LINE(C);
END;
/



ثم سيطلب منك إدخال القيمة الاولي , ومن ثم القيمة الثانيه من ثم Enter وستظهر نتيجة قسمة القيمتين ... ولتقسيم قيم جديد , فقط قم بكتابة RUN أو R أو / ومن ثم Enter وسيطلب منك إدخال القيمة الاولي , ومن ثم القيمة الثانيه من ثم Enter وستظهر نتيجة القسمه وهكذا .

عمر باعقيل
كندا - مونتريال
[email protected]

تم تعديل بواسطة عمر باعقيل

بتاريخ:

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

بتاريخ:
  • كاتب الموضوع

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

اخي أبوعبدالله , كل عام وانت وجميع الاخوه والمسلمين في كل مكان بخير وصحه وسلامه وعيد سعيد للجميع .
بالنسبه للدروس فإن شاء الله وعلى حسب الاستطاعه سأضع دروس جديده كل يومين تقريبا ولكن لإهتمامك وطلبك فسأستعجل في وضع الدروس .

الدرس الثالث :- بالنسبه للكود السابق , نلاحظ انه لو قمت بتقسيم أي رقمين فإنه ستطهر لك
النتيجه بإذن الله وبدون مشاكل الا في حالة لو كان المقسوم صفر !!
مثلا لو قمنا بتقسيم 10 على صفر .. طبعا لا يمكن التقسيم بالصفر
طبعا بالكود السابق ستظهر لنا رسالة خطاء من اوراكل كالتالي :-

*
ERROR at line 1:
ORA-01476: divisor is equal to zeroB NUMBER;
ORA-06512: at line 8



هنا سنتقوم بالإضافه على الكود السابق ووضع Exception " إستثناء " به نظهر رساله خاصه بنا وبها نتفادي ظهور الError التى من أوراكل ونقوم نحن بتحديد محتوي الرساله على حسب رغبتنا " ممكن تكون الرساله بالعربي " , والكود سيصبح :-

DECLARE
A NUMBER;

C NUMBER;
BEGIN
A:=&A;
B:=&B;
C:=A/B;
DBMS_OUTPUT.PUT_LINE(C);
EXCEPTION
WHEN ZERO_DIVIDE THEN
DBMS_OUTPUT.PUT_LINE(‘can't divide by zero’);
END;
/



ولكي تكون الرساله بالعربي :-

DECLARE
A NUMBER;
B NUMBER;
C NUMBER;
BEGIN
A:=&A;
B:=&B;
C:=A/B;
DBMS_OUTPUT.PUT_LINE(C);
EXCEPTION
WHEN ZERO_DIVIDE THEN
DBMS_OUTPUT.PUT_LINE('لا تستطيع التقسيم على صفر');
END;
/ 



عمر باعقيل
كندا - مونتريال
[email protected]

بتاريخ:

سوف أرسل مجموعة من دروس pl/sql وهذا أول درس

les01.zip

بتاريخ:
  • كاتب الموضوع

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

كل عام وانتم بخير

الدرس الرابع :- لعرض رقم وإسم الموظف ورقم الدائره التابع لها بناء على رقمه

" هنا أخترنا الموظف رقم 7839 "

DECLARE
NO NUMBER(4);
NAME VARCHAR2(20);
DNO NUMBER(2);
BEGIN
SELECT EMPNO,ENAME,DEPTNO
INTO NO,NAME,DNO FROM EMP
WHERE EMPNO=7839;
DBMS_OUTPUT.PUT_LINE(' EMPNO= '||NO||' ENAME IS '||NAME||' DEPTNO= '||DNO);
END;
/



ملاحظه :-
1- يجب ان تكون متصل بالمستخدم SCOTT .
2- لاتنسي تنفيذ الكود SET SERVEROUTPUT ON

عمر باعقيل
كندا - مونتريال
[email protected]

بتاريخ:

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

بتاريخ:

مشكور و جزاك الله الف خير

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

الاستاذ/عمر باعقيل
السلام عليكم
هل توقفت الدروس بصوره نهائيا ام هنالك امل في معاودتها
ومشكور في الحالتين

  • بعد 6 شهور...
بتاريخ:

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

تم تعديل بواسطة MohdElhassan

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

جزاك اللة خيرا ...........

اسلوب الدروس سهل جدا

الف شكر يا استاذ عمر باعقيل

بتاريخ:

بارك الله فيك اخي عمر , حقا مميز :)

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

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

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

مششششكور وجزءاك الله خيراً ;)

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

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

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

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

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

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.