pl/sql 變數的宣告與賦值
阿新 • • 發佈:2018-11-23
pl/sql 是一種強型別的程式語言,所有的變數必須聲明後再使用
,要求在DECLARE部分進行宣告
變數名稱規定:
變數名稱可以有字母,數字 _ $ #等組成
所有的變數名稱要求以字母開頭,不能是oral中的保留字
變數長度小於30個字元
定義變數如果沒有賦值則以NULL作為預設值
SQL> DECLARE 2 v_result VARCHAR2(30); 3 BEGIN 4 DBMS_OUTPUT.PUT_LINE('V_RESULT = '||v_result); 5 END; 6 / V_RESULT = PL/SQL 過程已成功完成。
所有的變數宣告都在DECALRE中完成
宣告變數的語法
變數名稱 [CONSTANT] 型別 [NOT NULL] [:=value];
CONSTANT:定義常量,必須在宣告是為其賦予預設值
NOT NULL : 表示此變數不允許設定為NULL
:=value:表示在變數聲名時,設定號初始化內容.
定義變數
SQL> DECLARE 2 v_resultA NUMBER :=100; --定義一個變數,同時賦值 3 v_resultB NUMBER; --定義一個變數,沒有設定內容 4 BEGIN 5 v_resultB :=30; 6 DBMS_OUTPUT.PUT_LINE('count = '||(v_resultB +v_resultA)); 7 END; 8 / count = 130 PL/SQL 過程已成功完成。
定義非空變數
SQL> DECLARE
2 v_resultA NUMBER NOT NULL:=100;
3 BEGIN
4 DBMS_OUTPUT.PUT_LINE(v_resultA);
5 END;
6 /
100
PL/SQL 過程已成功完成。
使用%TYPE 宣告變數型別
如果希望某一個變數與資料表中的某一列的型別一樣,則可以採用
變數定義 表名稱.欄位名稱%TYPE 的格式 這樣制定的變數就具備了指定欄位相同的型別
SQL> DECLARE 2 v_eno emp.empno%TYPE; 3 v_ename emp.ename%TYPE; 4 BEGIN 5 DBMS_OUTPUT.PUT_LINE('請輸入僱員編號'); 6 v_eno :=&empno; 7 select ename INTO v_ename FROM emp WHERE empno=v_eno; 8 DBMS_OUTPUT.PUT_LINE('編號為 : '||v_eno||' 姓名 : '||v_ename); 9 END; 10 / 輸入 empno 的值: 7369 原值 6: v_eno :=&empno; 新值 6: v_eno :=7369; 請輸入僱員編號 編號為 : 7369 姓名 : SMITH PL/SQL 過程已成功完成。
%ROWTYPE 宣告變數型別
%ROWTYPE 標記,使用該標記可以定義表中一行記錄的型別.
SQL> DECLARE
2 v_deptRow dept%ROWTYPE;
3 BEGIN
4 SELECT *INTO v_deptRow FROM dept WHERE deptno=10;
5 DBMS_OUTPUT.PUT_LINE('編號 : '||v_deptRow.deptno||' 名稱 : '||v_deptRow.dname||', 位置: '||v_deptR
ow.loc);
6 END;
7 /
編號 : 10 名稱 : ACCOUNTING, 位置: NEW YORK
PL/SQL 過程已成功完成。