13 Kasım 2015 Cuma

PL/SQL Değişkenler ve Sabitler

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;
1
<değişken ismi> veri tipi [NOT NULL ] [:= <ilk değer>]
1
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
1
<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.
1
2
3
4
5
6
7
8
9
10
11
12
13
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.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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.
1
2
3
4
5
6
7
8
9
10
11
12
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.

Hiç yorum yok:

Yorum Gönder