NUMBER(5,2) 範圍 -999.99~999.99。| 型別 | 長度語意 | 最大長度(PL/SQL) | 最大長度(資料欄) | 補齊行為 |
|---|---|---|---|---|
| CHAR | 字元 | 32,767 | 2,000 | 空格補齊至定長 |
| VARCHAR2 | 字元/位元組 | 32,767 | 4,000 | 不補齊,變長 |
| LONG | 位元組 | 32,760 | 2 GB | 已棄用,改用 CLOB |
| NCHAR / NVARCHAR2 | 字元 | 同 CHAR/VARCHAR2 | 同 CHAR/VARCHAR2 | 國家字元集(NLS_NCHAR_CHARACTERSET) |
**多位元組環境**(如 ZHS16GBK):VARCHAR2(200) 可存 200 英文字元或 100 中文字元。**建議統一用 AL32UTF8 + VARCHAR2**。
ROWIDTOCHAR 轉字串。
TYPE rec_type IS RECORD (
f1 type1 [NOT NULL] [:= expr1],
...
fn typen [NOT NULL] [:= exprn]
);
v_rec rec_type;
類似 CREATE TABLE 但只存在於 PL/SQL 區塊,**非持久化**。
TYPE tab_type IS TABLE OF scalar_type INDEX BY BINARY_INTEGER;
v_tab tab_type;
KEY (BINARY_INTEGER) + VALUE (scalar_type)。MULTISET 運算。| 型別 | 儲存位置 | 內容 | 字元集轉換 |
|---|---|---|---|
| CLOB | 資料庫內部 | 單位元組字元資料 | 是 |
| NCLOB | 資料庫內部 | 固定寬度多位元組字元 | 是 |
| BLOB | 資料庫內部 | 無結構二進制 | 否 |
| BFILE | **OS 檔案系統** | 唯讀二進制檔案 | 否 |
STORAGE 子句(CHUNK, PCTVERSION, CACHE 等)。DBMS_LOB 套件或 OCI 流式 API。Oracle 8 奠定了至今沿用的類型體系:**標量對應 SQL 欄位、複合支援程式化邏輯、REF 實現物件導向、LOB 處理非結構化大資料**。選型原則:**能用標量不用複合、能用 VARCHAR2/NUMBER/DATE 不用 LONG/RAW、大物件必用 LOB、新代碼索引用 PLS_INTEGER**。深入理解儲存語意(字元 vs 位元組、內部 vs 外部、字元集轉換),是避免資料截斷、亂碼、效能劣化的關鍵。