1. معرفی
PL/SQL مخفف (Procedural Language/Structured Query Language) یک زبان برنامه نویسی رویه ای مورد استفاده برای اوراکل SQL است.
PL / SQL شامل عناصر زبان رویه ای مانند شرط ها و حلقه است. که اجازه می دهد انواع متغیرها و ثابت ها ، پروسیجرها و توابع، triggers و متغیرهای آن نوع را تعریف کنیم ، همچنین می تواند خطاهای پیش آمده (runtime errors) را مدیریت کند .از آرایه پشتیبانی می کند .
پیاده سازی از نسخه 8 به بعد پایگاه داده اوراکل شامل ویژگی های مرتبط با شی گرایی است.
در واقع PL / SQL یک واحد ایجاد می کند که شامل پروسیجرها ، توابع، پکیج ها، type ها ، و trigger ها است ، که در پایگاه داده اوراکل برای استفاده مجدد توسط برنامه های کاربردی ذخیره شده است.
نکته : در ادامه ما از PL/SQL Developer نسخه 8.x استفاده می کنیم. با این حال برای استفاده از دیگر نسخه ها تفاوتی خاصی وجود ندارد .
2. برای شروع به کار با PL/SQL به چه چیزی نیاز داریم :
برای دسترسی سرعت به PL / SQL شما نیاز به یک ابزار برنامه نویسی دارید. با توجه به تجربه من، شما می توانید از PL/SQL Developer استفاده کنید.همچنین شما می توانید از دیگر ابزارها نیز استفاده کنید (TOAD,NAVICAT,….) است .
در این داکیومنت ، ما از یک دیتابیس کوچک برای اتصال و کار با آن استفاده می کنیم.شما می توانید برای ساخت دیتابیس اوراکل به لینک زیر مراجعه نمایید.
3. بررسی اجمالی PL / SQL
برخی از نکات برای کار با PL/SQL :
هر دستور SQL با نقطه و ویرگول یا سمی کالن (;) به پایان می رسد .
دستور زبان تعریف داده ها (DDL) در ساختارPL / SQL استفاده نمی شود.
دستور SELECT..INTO برمیگرداند اطلاعات زیادی اما امکان ایجا استثنا وجود دارد.
دستورات DML ممکن است در بسیاری از خطوط اثر داشته باشد.
استفاده از عملگر (=:) برای اعطای مقدار برای یک متغیر است.
در زیر با مثالهایی برای درک بهتر این موضوعات آشنا خواهید شد.
در زیر اختصاص یک مقدار به متغیر را می بینید:
x := 1;
در زیر دستور insert را می بینید :
Insert into Department (Dept_Id, Dept_No, Dept_Name, Location)
values (1, 'D1', 'HR', 'Chicago');
مدیریت یک خطا یا استثنا :
Begin
Select Dept.Dept_Id
into v_Dept_Id
from Department Dep;
Exception when too_many_rows then
Dbms_Output.put_line('Error:'||Sqlerrm);
End;
نکته :
PL / SQL از بلوک های از دستورات سازمان یافته است. یک بلوک از دستورات می تواند شامل زیر بلوک از دستورات در آن نیز باشد .
در زیر سعی می شود یک ساختار از یک بلوک را با توضیحات بیان کنیم :
Declare
این قسمت اختیاری است و برای تعاریف متغیرها در بدنه بلوک استفاده می شود.
v_Location Varchar2(100);
Begin
-----این قسمت بدنه بلوک می باشد
v_Location := 'Chicago';
Exception
----در این قسمت که اختیاری می باشد مدیریت خطاها انجام می شود.
When No_Data_Found Then
در این قسمت خطای عدم بازگشت مقداری از دستور SELECT ..INTO مدیریت می شود. که اختیاری است و می توانید هر چیز قرار دهید یا چیزی نباشد.
Null;
When Too_Many_Rows Then
در این قسمت خطای بازگشت بیش از یک مقداری از دستور SELECT ..INTO مدیریت می شود. که اختیاری است و می توانید هر چیز قرار دهید یا چیزی نباشد.
Null;
When Others Then
----در این قسمت نیز هر خطایی به جز دو خطای بالا مدیریت می شود.
Null;
End;
4. عبارات ساده PL / SQL :
تا به اینجا ما کلیاتی از دستورات پایه PL/SQL را بیان نمودیم در ادامه به طور جزئی تری توضیح خواهیم داد.
4.1- معرفی If-elsif-else :
نحوه نوشتن یا syntax :
IF <condition 1> THEN
Job 1;
[ELSIF <condition 2> THEN
Job 2;
]
[ELSE
Job n + 1;
]
END IF;
یک مثال :
If v_Option = 1 Then
v_Action := 'Run';
Elsif v_Option = 2 Then
v_Action := 'Backup';
Elsif v_Option = 3 Then
v_Action := 'Stop';
Else
v_Action := 'Invalid';
End If;
4.2- معرفی LOOP :
نحوه نوشتن یا syntax :
LOOP
-- می تواند هر چیزی باشد
EXIT WHEN <Condition>;
END LOOP;
یک مثال :
x := 0;
Loop
x := x + 1;
y := y - x;
Exit When x > y;
End Loop;
4.3- معرفی FOR LOOP :
نحوه نوشتن یا syntax :
FOR v_Index IN <Min value> .. <Max value>
LOOP
-- می تواند هر چیزی باشد
END LOOP;
یک مثال :
x := 0;
For v_Idx In 1 .. 100 Loop
x := x + 1;
End Loop;
4.4- معرفی WHILE LOOP :
نحوه نوشتن یا syntax :
WHILE <Condition> LOOP
-- می تواند هر چیزی باشد
END LOOP;
یک مثال :
v_Text Varchar2(100);
...
While Length(v_Text) < 50 Loop
v_Text := v_Text || '00';
End Loop
در بخش بعد (دوم) کار با ابزار ( PL/SQL Developer ) و معرفی انواع داده را توضیح خواهیم داد.
آموزش 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)