變數宣告
VARIABLE_NAME [CONSTANT] DATATYPE [NOT NULL] [:=|DEFAULT EXPRESSION]
-- NOT NULL 需初始化
-- 強型別:使用前必須宣告
指派值
- 直接指派:
X := 200; Y := Y + (X*20);
- SQL 查詢指派:
SELECT SUM(SALARY), SUM(SALARY*0.1)
INTO TOTAL_SALARY, TOTAL_COMMISSION
FROM EMPLOYEE WHERE DEPT=10;
常數
ZERO_VALUE CONSTANT NUMBER := 0;
-- 值不可變,宣告時必須給值
標量資料類型分類
| 類別 | 主要型別 |
| 數值 | NUMBER, BINARY_INTEGER, PLS_INTEGER |
| 字元 | CHAR, VARCHAR2, LONG, RAW, LONG RAW |
| 日期/時間 | DATE, TIMESTAMP (9i+) |
| 布林 | BOOLEAN (僅 PL/SQL,非 SQL) |
數值子型別
BINARY_INTEGER:-2^31~2^31-1,機器整數運算較快
PLS_INTEGER:同範圍,PL/SQL 優化,效能最佳
NUMBER:NUMBER(P,S),精度 38,刻度 0 預設
- 子型別:
NATURAL (>=0)、POSITIVE (>0)、SIGNTYPE (-1,0,1)
字元型別
CHAR(n):固定長度,空白補齊,最大 2000
VARCHAR2(n):變動長度,最大 4000
LONG:變動長度,最大 2GB (已棄用,建議用 CLOB)
RAW/LONG RAW:二進位資料
日期/布林
DATE:含年月日時分秒
BOOLEAN:TRUE/FALSE/NULL,僅 PL/SQL 使用