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 :
2- برای شروع به کار با PL/SQL به چه چیزی نیاز داریم
5- کار با PL/SQL در ابزار PL/SQL Developer
6- معرفی انواع داده های PL/SQLمتداول
6،7- تعریف متغیر از نوع جدول (table)
6،8- تعریف متغیر از نوع آرایه (Array)
7،2- Explicit cursor (مکان نمای صریح)
7،3- Implicit cursor (مکان نمای غیر صریح یا ضمنی)
8 - پروسیجر یا Stored procedure
11- معرفی پکیج
11،1- ساخت پکیج در PL/SQL Developer
11،2- تست پکیج
معرفی اوراکل اپکس (oracle apex)