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ğeri aynı 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
Kaynaklar;
http://www.tutorialspoint.com/plsql/plsql_basic_syntax.htm
https://developersdaily.wordpress.com
http://docs.oracle.com/cd/B19306_01/appdev.102/b14261/
https://docs.oracle.com/cd/E11882_01/appdev.112/e40758/toc.htm
https://oracle-base.com/articles/misc/introduction-to-plsql