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

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


عمر باعقيل

Recommended Posts

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

سوف أقدم هنا بإذن الله بعض الدروس للمبتدئين في تعلم ال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
  • البداية
  • اخر رد

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

  • ابوعبدالله

    5

  • عمر باعقيل

    4

  • ora

    2

  • arab20002000

    2

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

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

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

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

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

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

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

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

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

تم تعديل بواسطة عمر باعقيل
رابط هذا التعليق
شارك

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

الدرس الثاني :- لتغيير طريقة إدخال القيم المراد تقسيمها في كود ال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]

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

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

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

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

" هنا أخترنا الموظف رقم 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 أسابيع...

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

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

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

×   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.

جاري التحميل



×
×
  • أضف...

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

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