Oracle基本修練: PL/SQL data types
本篇記錄PL/SQL使用的datatype。
Content
- Number
- Boolean
- Character
- Datetime
Let’s Start!
Number
數值資料就包含實數、整數、浮點數,如將PL/SQL與原先SQL data type對應起來參考就如:
其中PLS_INTEGER
是比較特別的用法,儲存的大小為32 bits,數值範圍從-2,147,483,648
到2,147,483,647
。依據官方說明PLS_INTEGER
較常應用在hardware arithmetic上,相對NUMBER
可以跑得更快且儲存空間更小。
而其又包含了不同的subtype,如下表:
Boolean
如同常見的TRUE, FALSE, NULL,就是布林值的三種值。
經常被使用在控制流程(control flow),如if-then, case when…then…。
或是迴圈(loop statement),如loop, for, while。
但是SQL本身並無
BOOLEAN
的data type,因此幾件事情需要注意:
- 無法assign
BOOLEAN
至一個表格欄位中 - 從表格欄位中拉出數值(value)到
BOOLEAN
變數 - 在SQL statement使用
BOOLEAN
表達式 - 在
DBMS_OUTPUT.PUTLINE
andDBMS_OUTPUT.PUT
subprograms中使用BOOLEAN
值
Character
就是SQL裡面有使用到的文字資料, CHAR
, VARCHAR2
, LONG
, RAW
, LONG RAW
, ROWID
, UROWID
都是我們常見的資料格式。
可以特別關注的如
CHAR(n)
是固定長度的character,資料長度從1 到32,767 bytes。VARCHAR2(n)
是可變長度的character,資料長度從1 到32,767 bytes。
Datetime
儲存了基本年月日、時間戳記、時間區間的資料,如DATE
, TIMESTAMP
, TIMESTAMP WITH TIME ZONE
, TIMESTAMP WITH LOCAL TIME ZONE
, INTERVAL YEAR TO MONTH
,INTERVAL DAY TO SECOND
。
在使用不同的資料格式也需要特別注意不同類型的DB環境,會有看起來相近的同義詞。
以上為PL/SQL會使用到的資料形式。
資料來源: https://www.oracletutorial.com/plsql-tutorial/plsql-data-types/