آموزش زبان PL/SQL - درس اول ...

نوشته شده توسط :
آموزش زبان PL/SQL - درس اول ...

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 :

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)