پی‌ال/اس‌کیوال

زبان PL/SQL محصول شرکت اوراکل است که برای SQL و ارتباط بین دیتا بیس ساخته شد.
PL/SQL سینتکسی مشابه با زبان‌های Ada,Pascal دارد.
PL/SQL یکی از سه زبان برنامه‌نویسی‌ای است که در پایگاه داده اوراکل به همراه SQL و جاوا وجود دارد.
این زبان از نسخه ۷ پایگاه داده اوراکل در ان قرار گرفته شده‌است.
این زبان ساختارهایی مانند متغیر، عبارات شرطی، حلقه‌های تکرار وساختارهای استثنا را دارا می‌باشد. همچنین از ساختار ارائه نیز پشتیبانی می‌کند.
هنگامی که یک برنامه در پایگاه داده ذخیره می‌شود امکان اجرای ان در زمان‌های بعدی فراهم می‌شود.
در حالی که برنامه نویسان به راحتی می‌تواند جاسازی زبان دستکاری داده‌ها را انجام دهند اظهارات به‌طور مستقیم به کد PL / SQL با استفاده از اظهارات صریح زبان SQL نیاز به تعریف داده‌های پیچیده‌تر «پویا» در PL / SQL است با این حال، اظهارات DML زیر بنای اکثر کدهای PL / SQL را در برنامه‌های کاربردی فراهم می‌کند.
شرکت اوراکل به صورت عادی بسته‌هایی ازبرنامه‌ها را در نسخه‌های مختلف دیتا بیس خود گسترش داده است.
بخش برنامه‌ای PL/SQL
قالب‌های ناشناس
بخش برنامه می‌تواند قالب‌ها را نام گذاری کند یا نکند. قالب‌های نام گذاری نشده به عنوان قالب‌های نا شناس شناخته می‌شوند زیرا ان‌ها در پایگاه داده ذخیره نمی‌شوند پس هیچ نامی نخواهند داشت. ما معمولا از قالب‌های نا آشنا هنگام ساخت اسکریپت‌هایی برای داده‌هایی که می‌خواهیم یک بار فعال شوند استفاده می‌کنیم. این روش وقتی موثر است که ما می‌خواهیم فعالیت یک بخش را به بخش دیگر منتقل کنیم.
Exceptions خطاهایی که در مرحله اجرای کد ایجاد می‌شوند دارای یکی از دو مدل زیر هستند:
Exceptionsهایی که توسط کاربر ایجاد می‌شوند همیشه یه صورت صریح توسط یرنامه نویس ایجاد می‌شوند، با استفاده از کامندهای RAISE و RAISE_APPLICATION_ERRO در مواقعی که ما به‌طور قطع می‌دانیم که راه معمولی‌ای برای ادامه اجرا وجود ندارد.
RAISE کامندی مانند زیر دارد:
RAISE ;
شرکت اوراکل چند استثنا از پیش تعریف شده مانند NO_DATA_FOUND ,TOO_MANY_ROWS، دارد. هر استثناء شماره خطا در SQL و پیام خطا مرتبط با آن را دارد. برنامه نویسان می‌توانند با استفاده از SQLCODE و SQLERRM به نابع هر کدام دسترسی داشته باشد.
declare
number1 number(2);
number2 number1%type := 17; -- value default
text1 varchar2(12) := Hello world;
text2 date := SYSDATE; -- current date and time
begin
SELECT street_number
INTO number1
FROM address
WHERE name = INU;
end;
توابع
توابع در PL/SQL گروهی از توابع در PL/SQL و SQL هستند که جملات ان یک وظیفه خاصی را انجام می‌دهد و باید مقدار یا مقادیر خود را به محیط فراخوانی شده بفرستد. توابع تعریف شده توسط کاربر برای تکمیل کردن صدها تابعی که به وسیله شرکت اوراکل ایجاد شده‌است استفاده می‌شود.
در این زبان سه نوع مختلف از پارامترها وجود دارد: in ,out in out
پارامتر IN فقط برای ورودی به کار می‌رود.
پارامتر OUT برای مقدار دهی به پارامترهای NULL به کار می‌رود.
پارامتر IN OUT می‌تواند برای مقدار دهی مقادیر استفاده شود.
رویه‌ها
رویه‌ها مشابه توابع هستند که می‌توانند برای انجام کار اجرا شوند. تفاوت اصلی رویه‌ها با توابع این است که رویه‌ها نمی‌توانند در جملات SQL استفاده شوند. تفاوت دیگر آن‌ها در این است که می‌توانند چندین مقدار را برگردانند. PL/SQL تفاوت‌های بسیاری را میان توابع و رویه‌ها حفظ کرده‌است که در اهداف نوشتن برنامه می‌توانیم آن‌ها را پیدا کرد.
بسته‌ها
بسته گروه مفهومی مرتبط با توابع، رویه‌ها، مقادیر، جملات و… هستند. استفاده از بسته به دلیل ترویج استفاده مجدد از کد است. بسته‌ها متشکل از مشخصات بسته و بدنه بسته است که به صوزت اختیاری تعریف می‌شود.
دو مزیت استفاده از بسته این است که:
رویکرد ماژولار، مرتبط کردن داده‌ها با هم، پنهان کردن منطق کسب و کار، امنیت، افزایش کارایی.
استفاده از مقادیر بسته‌ای می‌توان سطح هر قسمتی را مشخص کرد.
متغیرهای عددی
برای تعریف متغیرهای عددی برنامه‌نویس باید متغیر از نوع عدد را برای نام تعریف کند.