1 / 20

كتابة الجمل التنفيذية في PL/SQL

كتابة الجمل التنفيذية في PL/SQL. الجمل التنفيذية في PL/SQL. تركيب الجمل ( Syntax ) في PL/SQL : تتكون الجمل من مجموعة من المكونات تفصل بينها فراغات, محددات, ملاحظات. وتخضع هذه المكونات والفواصل إلى قواعد يجب مراعاتها. مكونات الجمل: 1. متغيرات . 2. القيم الثابتة Literal Values .

leal
Download Presentation

كتابة الجمل التنفيذية في PL/SQL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. كتابة الجمل التنفيذية فيPL/SQL

  2. الجمل التنفيذية في PL/SQL • تركيب الجمل (Syntax) في PL/SQL: تتكون الجمل من مجموعة من المكونات تفصل بينها فراغات, محددات, ملاحظات. وتخضع هذه المكونات والفواصل إلى قواعد يجب مراعاتها. • مكونات الجمل: 1. متغيرات. 2. القيم الثابتة Literal Values . • قيم ثابتة رمزية وقيم التاريخ Date و Character تكون القيم داخل ‘’ مثل: ‘15-JAN-2005‘;:= v_ddate v_name:=’ali’; • قيم ثابتة رقمية Numbersو يمكن أن تكون صحيحة أو كسرية مثل: v_id :=201; 3. العمليات Operations. - الأس والنفي (**, NOT) - الضرب والقسمة (*,/ ) - الجمع والطرح (+, -) - العمليات المنطقية (OR, AND) - عمليات المقارنة (=,>,<,<=, <=, IS NULL, LIKE, BETWEEN, IN)

  3. الجمل التنفيذية في PL/SQL • التعليقات Comments : عند كتابة التعليقات: • تعليقات السطر الواحد تكون بوضع (--) في بداية جملة التعليق وتعني أن ما بعد هذه الجملة نص توضيحي. • تعليقات السطور المتعددة تكون بوضع (/*) في بداية التعليق ووضع (*/) في نهاية التعليق. • مثال: ……. v_name varchar2(20) ; -- this variable used to hold the employee name Begin /* this code is used to read The employee salary and calculate the annual salary And print the annual salary */ ……. End ;

  4. الوحدات المتداخلة (Nested Blocks) • الوحدات المتداخلة (Nested Blocks) يمكن كتابة (Block) داخل الجزء التنفيذي لأي (Block) آخر وسيعامل على أنه جملة تنفيذية, ويمكن أيضا كتابة (Block) داخل جزء الاستثناءات. ... x BINARY_INTEGER; BEGIN ... x مجال DECLARE y NUMBER; BEGIN y مجال ... END; ... END; مجال المتغير يمثل المنطقة التي يمكن التعامل مع المتغير داخلها

  5. الوحدات المتداخلة (Nested Blocks) ... x BINARY_INTEGER; BEGIN ... DECLARE x NUMBER; BEGIN استخدام المتغير داخل هذه الوحدة سيكون ل ... END; ... END; في حالة تعريف متغيرين بنفس الاسم في الوحدات المتداخلة فإن الوحدة (Block) تتعامل مع المتغير الأقرب لها

  6. الوحدات المتداخلة (Nested Blocks) • مثال: DECLARE v_sal NUMBER(7,2) := 60000; v_comm NUMBER(7,2) := v_sal * .20; v_message VARCHAR2(255) := ' eligible for commission'; BEGIN DECLARE v_sal NUMBER(7,2) := 50000; v_comm NUMBER(7,2) := 0; v_total_comp NUMBER(7,2) := v_sal + v_comm; BEGIN v_message := 'CLERK not' || v_message; END; v_message := 'SALESMAN'||v_message; DBMS_OUTPUT.PUT_LINE (v_message); END; output SALESMAN CLERK not eligible for commission

  7. دليل البرمجة في PL/SQL(Programming Guidelines) • كتابة التوضيحات والتعليقات وذلك لتوضيح دلالة المتغيرات وطريقة عمل البرنامج. • استخدام حالة الأحرف الصغيرة والكبيرة بناء على ما يلي:

  8. دليل البرمجة في PL/SQL(Programming Guidelines) • الجدول التالي يبين طريقة تسمية المتغيرات بناء على نوع المتغيرات:

  9. دليل البرمجة في PL/SQL(Programming Guidelines) 3. استخدام الإزاحات حتى يكون البرنامج واضح وسهل الفهم. نلاحظ الفرق أدناه: BEGIN IF x=0 THEN y:=1; ELSE y:=2; END IF; END; BEGIN IF x=0 THEN y:=1; ELSE y:=2; END IF; END;

  10. التفاعل مع الخادم Oracle

  11. جمل الاسترجاع (Select Statement) • كتابة جملة الاسترجاع (Select Statement): إن عملية استرجاع البيانات ومعالجتها تتطلب جمل SQL وجمل PL/SQL. SELECT column name INTO variable_name FROM table WHERE condition (الشرط) ;

  12. جمل الاسترجاع (Select Statement) • مثال: DECLARE v_deptno NUMBER(2); v_loc VARCHAR2(15); BEGIN SELECT deptno, loc INTO v_deptno, v_loc FROM dept WHERE dname = 'SALES'; END; • عند كتابة جمل الاسترجاع يجب مراعاة ما يلي: • أن تنتهي جملة الاسترجاع بفاصلة منقوطة (;) • يجب أن تحتوي جملة الاسترجاع على INTO . • عدد المتغيرات يجب أن يساوي عدد القيم الراجعة من جملة الاسترجاع وكذلك نوع البيانات يجب أن يكون نفس نوع البيانات الراجعة. • للتأكد من توافق البيانات مع بعضها نعرف المتغيرات باستخدام %TYPE . v_deptnodept.deptno%TPYPE; v_locdept.loc%TPYPE; • لا يشترط وجود WHERE ولكن يجب التأكد من العائد من جملة الاسترجاع.

  13. معالجة البيانات باستخدام جمل DML • تتم معالجة البيانات المخزنة بقاعدة البيانات باستخدام جمل DML وهي: • جمل الإضافة INSERT : ”إضافة صف جديد في الجدول“ BEGIN INSERT INTO emp (empno, ename, job, deptno) VALUES (empno_sequence.NEXTVAL, 'HARDING', 'CLERK', 10); END; 2. جمل التعديل UPDATE : ”تعديل القيم الموجودة في الجدول“ عند عمل جمل التعديل يجب استخدام WHERE حتى يتم بيان المعلومات الواجب تعديلها. DECLARE v_sal_increase emp.sal %TYPE := 2000; BEGIN UPDATE emp SET sal = sal + v_sal_increase WHERE job = 'ANALYST‘ ; END;

  14. معالجة البيانات باستخدام جمل DML • جمل الحذف DELETE : ”حذف صف من الجدول“ DECLARE v_deptnoemp.deptno %TYPE := 10 ; BEGIN DELETE FROM emp WHERE deptno = v_deptno ; END ;

  15. استخدام الدوال • الدوال التي يمكن استخدامها داخل وحدة (Block): • دوال الصف الواحد في SQL - الدوال الرقمية Number Functions • الدوال الرمزية Character Functions • دوال التاريخ Date Functions

  16. استخدام الدوال • دوال التحويل بين أنواع البيانات المختلفة: • التحويل إلى قيم رمزية TO_CHAR ◄ CHARACTER to_char( value, [ format_mask ], [ nls_language ] ) - مثال تحويل تاريخ إلى قيم رمزية: • to_char(sysdate, 'yyyy/mm/dd'); '2003/07/09‘ - مثال تحويل أرقام إلى قيم رمزية: • to_char(1210.73) '1210.73 ‘ • to_char(1210.73, '9999.9') '1210.7‘ • to_char(1210.73, '$9,999.00') '$1,210.73' • التحويل إلى قيم رقمية TO_NUMBER ◄ NUMBER to_number( string1, [ format_mask ], [ nls_language ] ) مثال: • to_number('1210.73') 1210.73 • التحويل إلى قيم تاريخ TO_DATE ◄ DATE to_date( string1, [ format_mask ], [ nls_language ] ) مثال: • to_date('2003/07/09', 'yyyy/mm/dd') July 9, 2003.

  17. استخدام المؤشر (SQL Cursor) SQL • هناك نوعان من المؤشرات : • مؤشرات يقوم المستخدم بتعريفها (EXPLICIT CURSORS). • مؤشرات SQL (IMPLICIT CURSORS) . • مؤشرات SQL (IMPLICIT CURSORS) : المؤشر هو عبارة عن منطقة عمل خاصة تستعمل لتنفيذ أي جملة يقوم المستخدم بتنفيذها مثل جمل الاسترجاع أوالحذف أوالتعديل.ويتم التحكم بهذا المؤشر من قبل النظام بعكس المؤشرات التي يقوم المستخدم بتعريفها. • خصائص المؤشر ثلاثة: • SQL%ROWCOUNT تعيد عدد الصفوف التي تأثرت بآخر جملة SQL • SQL%FOUND تعيد (TRUE) إذا تأثر صف أو أكثر بآخر جملة SQL عكسها SQL%NOTFOUND تعيد (TRUE) إذا لم تؤثر آخر جملة SQL بأي صف. • SQL%ISOPEN تعيد (TRUE) إذا كان المؤشر مفتوح. بالنسبة ل SQL CURSORS دائما تكون القيمة الراجعة (FALSE) لأن المؤشر يفتح ويغلق ضمنيا من قبل النظام.

  18. مثال على استخدام المؤشر (SQL Cursor) SQL SQL> VARIABLE rows_deleted VARCHAR2(30) DECLARE v_ordid NUMBER := 605; BEGIN DELETE FROM item WHERE ordid = v_ordid; :rows_deleted := (SQL%ROWCOUNT ||' rows deleted.'); END; SQL >PRINT rows_deleted

  19. الخلاصة • تركيب الجمل (Syntax) في PL/SQL • بعض الدوال التي يمكن استخدامها في PL/SQL • دوال الصف الواحد. • دوال التحويل. • المتغيرات في الوحدات المتداخلة. • كتابة جمل PL/SQL وجمل SQL للتفاعل مع الخادم أوركال. - جمل الاسترجاع ومعالجة البيانات باستخدام DML. - استخدام مؤشرات SQL

More Related