Pl/Sql’de değişkenler ve sabitler tanımlayıp bunları daha sonraki SQL ve program cümlelerinde kullanabiliyoruz.Bir değişken veya sabitler kullanılmaya başlamadan önce mutlaka tanımlanmış olmalıdır. Değişken tanımlanması şu şekilde yapılmaktadır;
<değişken ismi> veri tipi [NOT NULL ] [:= <ilk değer>]
employee_id NUMBER NOT NULL :=23
Sabitlere ilk kullanıldığı yerlerde değer atar ve bir daha atadığımız değeri değiştiremeyiz. Sabit kullanırken CONSTANT kelimesi kullanılır. Sabitlerin değişkenlerden farkı bununla birlikte ilk değer atamasının hemen yapılmasıdır
<sabit_ismi> veri tipi CONSTANT [NOT NULL] [:=<ilk değer>]
NOT : Pl/Sql de değer atama := sembolleriyle yapılır. Pl/Sql blokları içinde select,insert,update,delete,commit ve rollback ifadeleri kullanılabilir.
DECLARE
l_string VARCHAR2(20);
l_number NUMBER(10);
l_con_string CONSTANT VARCHAR2(20) := 'This is a constant.';
BEGIN
l_string := 'Variable';
l_number := 1;
END;
/
PL/SQL procedure successfully completed.
DECLARE
l_string VARCHAR2(20);
l_number NUMBER(10);
l_con_string CONSTANT VARCHAR2(20) := 'This is a constant.';
BEGIN
l_string := 'Variable';
l_number := 1;
l_con_string := 'This will fail';
END;
/
l_con_string := 'This will fail';
*
ERROR at line 10:
ORA-06550: line 10, column 3:
PLS-00363: expression 'L_CON_STRING' cannot be used as an assignment target
ORA-06550: line 10, column 3:
PL/SQL: Statement ignored
NOT : PL/SQL de değişkenlerin kapsamı global ve local olmak üzere 2 çeşittir.Local değişkenler içteki(inner) bloklarda kullanılır ve dıştaki bloklarda kullanılmaz.Global değişkenler ise her tarafta kullanılabilir.Örnek;
DECLARE
-- Global variables
num1 number := 95;
num2 number := 85;
BEGIN
dbms_output.put_line('Outer Variable num1: ' || num1);
dbms_output.put_line('Outer Variable num2: ' || num2);
DECLARE
-- Local variables
num1 number := 195;
num2 number := 185;
BEGIN
dbms_output.put_line('Inner Variable num1: ' || num1);
dbms_output.put_line('Inner Variable num2: ' || num2);
END;
END;
/
NOT : Atama yapılırken dikkat edeceğimiz bir diğer husus da into kalıbı. SQL ile çekip aldığımız değeriaynıtipte ki değişkenimize atıyoruz.
Declare
v_salary number(10);
begin
select salary into v_salary
from hr.employees
where employee_id = 100;
dbms_output.put_line(v_salary);
end;
/
24000
PL/SQL procedure successfully completed.
Yararlı olması Dilegiyle … Yazar : Mustafa Bektaş Tepe
PL/SQL, SQL cümlelerine blok yapılarının,şart cümlelerinin,dögülerin v.b diğer özelliklerin eklenmesiyle oluşmuş bir dildir.En temel yapı birimi bloktur.Bir veya birden fazla bloktan oluşabilirler.Akış kontrolü sayesinde yapısal dillere ait olan şart cümleleri ve döngüler PL/SQL bloklarında kullanılabilir. Aşağıdaki resimde bir PL/SQL bloğunun çalışması gösterilmiştir.
Birbirleriyle ilişkili ifadelerin mantıksal bölümlere ayrılması demektir.Değişken tanımlamaları ve hata kontrolleride her blok içerisinde yapılabilir.PL/SQL blok yapısı 3 bölümden oluşur.
[DECLARE
-- delarations]
BEGIN
-- statements
[EXCEPTION
-- handlers
END;
PLSQL Procedural Language Structured Query Language ‘ nin kısa adıdır. 1980 ler’n sonunda Oracle tarafından geliştirilmeye başlanmıştır.
PL/SQL taşınabilir, yüksek performanslı transaction-processing dilidir.
PL/SQL veritabanı tarafından yorumlandığı için işletim sistemi bağımsızdır.
SQL’i doğrudan SQL*Plus üzerinden çalıştırabiliriz.
Başka programlar, veritabanından direk PL/SQL kodlarını çağırabilir.
PL/SQL’in sözdizimi ADA ve Pascal diline dayanmaktadır.
PL/SQL yapısal dillere ait özelliklerin SQL’e eklenmesiyle ortaya çıkan Oracle’a has bir dildir. İstemcisunucu ortamları tasarlama ile ağ üzerindeki dağıtık işlemler yapma ve transactionlar çalıştırma imkanı sunmaktadır. PL/SQL kullanarak her türlü SQL cümleciğini yazabilirsiniz. Dinamik SQL ifadeleri oluşturup, çalıştırabilirsiniz. PL/SQL programları genellikle veritabanında saklanırlar. Bu nedenle sorguların istemciden veritabanına gönderilmesi ve tekrar istemciye gönderilmesine gerek yoktur. Böylecilikle ağ trafiğini de azaltmış olur. (continue reading…)