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

Slides:



Advertisements
Similar presentations
PL/SQL (Embedded SQL) Introduction Benefits Basic Constructs
Advertisements

PL/SQLPL/SQL Declaring Variables Declaring Variables Declaring Variables Declaring Variables Writing Executable Statements Writing Executable Statements.
ORACLE ONLINE TRAINING Contact our Support Team : SOFTNSOL India: Skype id : softnsoltrainings id:
Ch. 3 Single-Row Functions Important Legal Notice:  Materials on this lecture are from a book titled “Oracle Education” by Kochhar, Gravina, and Nathan.
Single-Row Functions. SQL Functions Functions are a very powerful feature of SQL and can be used to do the following: Perform calculations on data Modify.
3-1 Copyright  Oracle Corporation, All rights reserved. SQL Functions FunctionInput arg 1 arg 2 arg n Function performs action OutputResultvalue.
Copyright  Oracle Corporation, All rights reserved. 3 Creating Procedures.
EE Copyright س Oracle Corporation, All rights reserved. ® Review of PL/SQL.
4-1 Copyright  Oracle Corporation, All rights reserved. Data Manipulation Language (DML)
Single – Row Functions. Objectives After completing this lesson, you should be able to do the following:  Describe various types of functions available.
Program with PL/SQL. Interacting with the Oracle Server.
1 Theory, Practice & Methodology of Relational Database Design and Programming Copyright © Ellis Cohen Cursors These slides are licensed under.
1. 1. Which type of argument passes a value from a procedure to the calling program? A. VARCHAR2 B. BOOLEAN C. OUT D. IN 2.
PL/SQL Cursors Session - II. Attributes Attributes %TYPE %ROWTYPE % Found % NotFound % RowCount % IsOPen %TYPE %ROWTYPE % Found % NotFound % RowCount.
PL SQL Block Structures. What is PL SQL A good way to get acquainted with PL/SQL is to look at a sample program. PL/SQL combines the data manipulating.
INTRODUCTION C++ I. Elaf AlhazmiLAB1 Programming course.
Copyright  Oracle Corporation, All rights reserved. 3 Single-Row Functions.
1 CursorsCursors. 2 SQL Cursor A cursor is a private SQL work area. A cursor is a private SQL work area. There are two types of cursors: There are two.
Chapter 3 Selected Single-Row Functions and Advanced DML & DDL.
PL/SQL Block Structure DECLARE - Optional Variables, cursors, user-defined exceptions BEGIN - Mandatory SQL Statements PL/SQL Statements EXCEPTIONS - Optional.
Manipulating Data in PL/SQL. 2 home back first prev next last What Will I Learn? Construct and execute PL/SQL statements that manipulate data with DML.
Introduction to PL/SQL. Objectives  After completing this lesson, you should be able to do the following:  Explain the need for PL/SQL  Explain the.
Copyright  Oracle Corporation, All rights reserved. 18 Interacting with the Oracle Server.
Using SQL in PL/SQL ITEC 224 Database Programming.
Copyright  Oracle Corporation, All rights reserved. 3 Single-Row Functions.
Copyright س Oracle Corporation, All rights reserved. 3 Single-Row Functions.
1 PL/SQL Part C Scope and Interacting with the Oracle Server.
Introduction to PL/SQL Francis Thottungal. The outline The basic PL/SQL code structure is : DECLARE -- optional, which declares and define variables,
1-1 Copyright  Oracle Corporation, All rights reserved. Logging In to SQL*Plus From Windows environment:From Windows environment: From command line:From.
Program with PL/SQL Lesson 3. Interacting with the Oracle Server.
PL/SQL Writing Executable Statements. PL/SQL Block Syntax and Guidelines Statement can be split across lines, but keywords must not be split Lexical units.
3 Copyright © 2004, Oracle. All rights reserved. Writing Executable Statements.
مقدمة قواعد بيانات - أوراكل الفـصـل الــرابــع دوال الصف الواحد أ. جمانه الحازمي.
دبلوم الإرشاد الأسري. phrasal verb  The term phrasal verb is commonly applied to two or three distinct but related constructions in English: a verb and.
PL/SQL Part B.
ITEC 224 Database Programming
CS322: Database Systems PL/ SQL PL/SQL by Ivan Bayross.
Interacting with the Oracle8 Server
Interacting with the Oracle Server
Interacting with the Oracle Server
Interacting with the Oracle Server
Writing Executable Statements
Writing Control Structures
الالدهيدات والكيتونات. قبل دراستنا الى الالدهيدات والكيتونات لا بد وأن نعرف بأنها أنواع من المركبات الكربونيلية اذا هناك مركبات اخرى من مركبات الكربونيل.
Database Management Systems 2
لنفرض أن هدف التجربة هو مقارنة صنفين من السماد (A و B) من حيث كمية محصول نوع معين من القمح.
Interacting with the Oracle Server
كتابة الجمل التنفيذية في PL/SQL
Database Management Systems 2
استخدام لغة معالجة البياناتDML ضمن الوحدات البرمجية
جمل التحكم المحاضرة التاسعة T.Eman Alsqour.
جمل التحكم.
تمثيل البيانات كيف تجرى عملية حسابية في ال Visual Basic.net
أنواع البيانات والثوابت والمتغيرات
How to contact me Twitter Blog :-
10 0× 1 = 4× 4 = (وحدات)4 10 1× = 5 50 = (عشرات)5
تابع :تطبيع البيانات.
1.الدوال Function 2.الاجراءاتSub Procedure 3.وحده نمطيه Add Module
تابع جمل التحكم و معالجة الاستثناءات
الفصل الثالث حصر و ترتيب البيانات.
Programming -2 برمجة -2 المحاضرة-1 Lecture-1.
معالجة الاستثناءات.
Writing Control Structures
C++ Programming L11 . Classes(3) kkkkkkkkkkkkkk
Cursors.
الوحدة الخامسة البرمجة بلغة فجول بيسك تصميم الواجهات في برنامج الفجول بيسك. ضبط خصائص الأدوات. مراحل كتابة البرنامج بلغة فجول بيسك أهداف الدرس.
الوحدة الثانية: مكونات لغة الجافا
Database Programming Using Oracle 11g
Database Programming Using Oracle 11g
Presentation transcript:

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

الجمل التنفيذية في 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)

الجمل التنفيذية في 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 ;

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

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

الوحدات المتداخلة (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 v_sal NUMBER(7,2) := 50000; v_comm NUMBER(7,2) := 0; v_total_comp NUMBER(7,2) := v_sal + v_comm; v_message := 'CLERK not' || v_message; END; v_message := 'SALESMAN'||v_message; DBMS_OUTPUT.PUT_LINE (v_message ); output SALESMAN CLERK not eligible for commission

دليل البرمجة في PL/SQL (Programming Guidelines) كتابة التوضيحات والتعليقات وذلك لتوضيح دلالة المتغيرات وطريقة عمل البرنامج. استخدام حالة الأحرف الصغيرة والكبيرة بناء على ما يلي: الفئة حالة الأحرف مثال SQLجمل كبيرة SELECT, INSERT الكلمات المحجوزة DECLARE ,BEGIN, END أنواع المتغيرات VARCHAR2(5), NUMBER(3) معاملات المتغيرات صغيرة g_id, v_sal أسماء الجداول والأعمدة emp, dept, ename

دليل البرمجة في PL/SQL (Programming Guidelines) الجدول التالي يبين طريقة تسمية المتغيرات بناء على نوع المتغيرات: الاسم طريقة التسمية مثال المتغيرات variables v_name v_empno, v_sal الثوابت constants c_name c_sal , c_tax المؤشرات cursors Name_cursor emp_cursor الاستثناءات exception e_name e_too_many متغيرات الاستبدال substitute variables p_name p_empno المتغيرات العامة global g_name g_sal

دليل البرمجة في 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;

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

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

جمل الاسترجاع (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_deptno dept.deptno%TPYPE; v_loc dept.loc%TPYPE; لا يشترط وجود WHERE ولكن يجب التأكد من العائد من جملة الاسترجاع.

معالجة البيانات باستخدام جمل 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; UPDATE emp SET sal = sal + v_sal_increase WHERE job = 'ANALYST‘ ;

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

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

الدوال الرقمية Number Functions أمثلة ROUND تقرب ما بعد الفاصلة v_sal := ROUND(1.23456) ;  1 TRUNC تتجاهل ما بعد الفاصلة v_sal := TRUNC(1.23456) ;  1 SQRT تعطي الجذر التربيعي v_ num := SQRT(9);  3 الدوال الرمزية Character Functions INITCAP تجعل الحرف الأول من الكلمة حرف كبير SELECT INITCAP (enam) INTO v_name FROM emp WHERE empno =7788; CONCAT تربط بين كلمتين أو عمودين.. SELECT CONCAT(first_name, last_name) INTO v_name  FROM employee LOWER تحول إلى أحرف صغيرة UPPER تحول إلى أحرف كبيرة SELECT  LOWER (job), INITCAP (ename) INTO v_ejop , v_ename FROM   employees  WHERE   UPPER (job) = 'SALESREP' دوال التاريخ Date Functions ADD_MONTHS تضيف عدد معين من الأشهرعلى التاريخ المعطى SELECT  ADD_MONTHS('01-JAN-2005', 13)   FROM dual; MONTHS_BETWEEN تعطي عدد الأشهر مابين تاريخين. SELECT  MONTHS_BETWEEN('25-MAY-2005', ‘15-JAN-2005') FROM dual;   4.32258065

استخدام الدوال دوال التحويل بين أنواع البيانات المختلفة: التحويل إلى قيم رمزية 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.

استخدام المؤشر (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) لأن المؤشر يفتح ويغلق ضمنيا من قبل النظام.

مثال على استخدام المؤشر (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

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