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

6,534 total views, 4 views today