آموزش زبان PL/SQL ( پروسیجر یا Stored procedure )- درس چهارم ......

نوشته شده توسط :
آموزش زبان PL/SQL ( پروسیجر یا Stored procedure )- درس چهارم ......

8- پروسیجر یا Stored procedure :

یک Stored procedure گروهی از بلاکها در PL/SQL است که یک یا چند وظیفه به منظور افزایش قابلیت جابجایی، استفاده مجدد، امنیت، ایمنی داده ها را به انجام می رساند. این تعریف همانند procedure در زبان های برنامه نویسی دیگر است. procedure  را می توان در پایگاه داده به عنوان یک شی از پایگاه داده برای استفاده مجدد ذخیره نمود. یک procedure دارای یک سرآیند (header) و یک بدنه (body) می باشد. سرآیند شامل نام procedure و پارامترها و متغیرهای فرستاده شده به  procedure است. بدنه شامل بخش تعاریف و بخش اجرایی و بخش exception همانند بالک اصلی PL/SQL می شود.

     نحو ایجاد یک procedure :

-- procedure_name: نام پرسیجر
-- argument:  
-- mode:  IN یا OUT یا IN OUT, به طور پیشفرض  IN
-- datatype:  نوع داده

CREATE [OR REPLACE] PROCEDURE <procedure_name>
          [
           (argument1  [mode1]  datatype1,
            argument2  [mode2]  datatype2,
           ...)
          ]
     IS | AS
BEGIN
   -- PL/SQL بلاک;
END;

یک مثال :

--  یک مثال پروسیجر بدون پارامتر.
CREATE OR REPLACE Procedure Do_Something AS
   -- تعریف متغیرها در اینجا
Begin
  -- موارد مورد نظر.
End;

--  یک مثال پروسیجر با پارامتر.
--  پارامترهای ورودی و پارامترهای خروجی.

CREATE OR REPLACE Procedure Do_Something(p_Param1 Varchar2,v_Param Out Varchar2)
AS
   -- تعریف متغیرها در اینجا
Begin
  -- موارد مورد نظر.
End;


دستور پاک کردن Procedure :

DROP PROCEDURE <Procedure_Name>

مراحل اجرای یک Procedure :

 

یک مثال برای Procedure :

در این مثال که با ابزار PL/SQL Developer پیاده سازی می شود مراحل زیر را خواهیم دید.

ایجاد پروسیجر (Create a Procedure) کامپایل پروسیجر (Compile the procedure) اجرای پروسیجر (Run the procedure) اشکال زدایی پروسیجر با استفاده از ابزار PL/SQL Developer با بررسی چگونگی اجرا برنامه .

 

تذکر : اگر شما یک فرد تازه کار در استفاده از PL / SQL هستید، باید این بخش به طور کامل مطالعه کنید.

ایجاد پروسیجر (Create a Procedure) :

مانند شکل زیر روی گزینه Procedure راست کلیک کنید و گزینه New را انتخاب کنید.

در ادامه برای Procedure خود نامی انتخاب کنید و پارامترهای مورد نظر را واد کنید.

شما با ابزار PL/SQL Developer توانسته اید یک Procedure ایجاد کنید.با این حال، شما نیاز به تصحیح لیست پارامترها و ایجاد قسمت begin دارید.

ایجاد تغییرات در Procedure :

-- پارامترهای ورودی : p_Emp_Id

-- پارامترهای خروجی: v_First_Name, v_Last_Name, v_Dept_Id.

Create Or Replace Procedure Get_Employee_Infos(p_Emp_Id     Number,v_First_Name Out Varchar2,v_Last_Name Out Varchar2,v_Dept_Id   Out Number) Is

Begin

Dbms_Output.Put_Line('Parameter p_Emp_Id = ' || p_Emp_Id);

--

-- دستور SELECT .. INTO :

Select Emp.First_Name

       ,Emp.Last_Name

       ,Emp.Dept_Id

Into   v_First_Name

       ,v_Last_Name

       ,v_Dept_Id

From   Employee Emp

Where Emp.Emp_Id = p_Emp_Id;

Dbms_Output.Put_Line('Found Record!');

Dbms_Output.Put_Line(' v_First_Name= ' || v_First_Name);

Dbms_Output.Put_Line(' v_Last_Name= ' || v_Last_Name);

Dbms_Output.Put_Line(' v_Dept_Id= ' || v_Dept_Id);

-- اگر دستور SELECT .. INTO با خطا مواجه شده (NO_DATA_FOUND) :

Exception

When No_Data_Found Then

     Dbms_Output.Put_Line('No Record found with p_Emp_Id = ' || p_Emp_Id);

End Get_Employee_Infos;

روی Execute کلیک کنید و یاF8 برای کامپایل فشار دهید. روش. در صورتی که شما کد اشتباهی داشته باشید ، PL/SQL Developer به شما اطلاع می دهد.

 

 

8.1 – تست procedures در PL/SQL Developer :

   روی Get_Employee_Infos راست کلیک کنید و گزینه تست را انتخاب کنید.

برای مثال مقدای را برای پارامتر وارد کنید

p_Emp_Id = 1

نتایج اجرای procedures :

 

نمایش در کنسول صفحه نمایش:

 

این با یک تست متفاوت :

p_Emp_Id = 9999

نمایش در کنسول صفحه نمایش:

 

 

آموزش PL/SQL :

1- معرفی

2- برای شروع به کار با PL/SQL به چه چیزی نیاز داریم

3- بررسی اجمالی PL / SQL

4- عبارات ساده PL / SQL

4.1- معرفی If-elsif-else

4.2- معرفی LOOP

4.3- معرفی FOR LOOP

4.4- معرفی WHILE LOOP

5- کار با PL/SQL در ابزار PL/SQL Developer

6- معرفی انواع داده های PL/SQLمتداول

6.1- نوع داده عددی در pl/sql

6.2- انواع داده متن

6،4- تعریف متغیر با type%

6،5- تعریف متغیر با Rowtype%

6،6- تعریف متغیر از نوع رکورد

6،7- تعریف متغیر از نوع جدول   (table)

6،8- تعریف متغیر از نوع آرایه (Array)

7- Cursor (مکان نمای)

7.1- Cursor (مکان نمای) چیست؟

7،2- Explicit cursor (مکان نمای صریح)

7،3- Implicit cursor (مکان نمای غیر صریح یا ضمنی)

8 - پروسیجر یا Stored procedure

9- توابع یا Function

10- تریگر Trigger

11- معرفی پکیج

11،1- ساخت پکیج در PL/SQL Developer

11،2- تست پکیج

معرفی اوراکل اپکس (oracle apex)