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