格式:<語言/區域><位元數><標準名稱>[S|C]
| 範例 | 語言/區域 | 位元數 | 標準名稱 | 備註 |
|---|---|---|---|---|
US7ASCII | US | 7-bit | ASCII | 單位元組 |
WE8ISO8859P1 | WE (Western Europe) | 8-bit | ISO8859P1 | 單位元組歐洲語系 |
ZHS16GBK | ZHS (Simplified Chinese) | 16-bit | GBK | 雙位元組簡中 |
ZHT16BIG5 | ZHT (Traditional Chinese) | 16-bit | BIG5 | 雙位元組繁中 |
ZHS16CGB231280 | ZHS | 16-bit | GB231280 | 1980 標準 |
AL32UTF8 | AL (All) | 32-bit (UTF-8 變長) | UTF8 | **不符合常規命名** |
UTF8 | - | - | UTF8 | 舊版 UTF-8 實作 |
UTFE | - | - | UTF-EBCDIC | EBCDIC 平台專用 |
AL16UTF16 | AL | 16-bit (UTF-16 固定雙位元組) | UTF16 | **僅作國家字元集** |
SET NLS_LANG=AMERICAN_AMERICA.UTF8
SET NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
格式:<語言>_<地區>.<字元集>,三者必須一致,否則產生隱性轉換與亂碼。
| 維度 | 資料庫字元集 | 國家字元集 |
|---|---|---|
| 用途 | CHAR、VARCHAR2、CLOB、LONG、表/欄名、PL/SQL 變數、SQL/PLSQL 原始碼 | NCHAR、NVARCHAR2、NCLOB |
| 設定時機 | CREATE DATABASE 時指定,**建立後不可變** (12c+ 可用 DMU 遷移) | CREATE DATABASE 時指定,亦不可變 |
| 預設值 | 視安裝選項 (常為 AL32UTF8 或 WE8MSWIN1252) | 10g+ 預設 AL16UTF16 |
| 字元集 | 版本範圍 | Unicode 版本 | 編碼 | 狀態 |
|---|---|---|---|---|
AL24UTFFSS | 7.2 ~ 8.x | 1.1 | UTF-8 變體 | 9i 起不支援 |
UTF8 | 8.0 ~ 10g | 2.1 (8.0~8.1.6) / 3.0 (8.1.7~10g) | CESU-8 (非標準 UTF-8) | 相容性保留 |
UTFE | 8.0 ~ | 同 UTF8 | UTF-EBCDIC | EBCDIC 平台專用 |
AL32UTF8 | 9i ~ 23c | 3.0 (9i) → 4.0.1 (10g) → 最新 | **標準 UTF-8** | **新建資料庫首選** |
AL16UTF16 | 9i ~ | 同步更新 | UTF-16BE | **僅作國家字元集** |
ZHS16GBK **非** ZHS16CGB231280 嚴格超集:部分漢字編碼值不同,直接轉換會產生錯誤字元。AL32UTF8 + AL16UTF16**,支援全球語言、避免字元集轉換效能損耗。UTF8 非標準 UTF-8 (CESU-8),補充字元平面 (Emoji、罕見漢字) 會編碼為 6 位元組而非 4 位元組,**新專案禁用**。字元集是資料庫的「基因」,決定一生。搞清命名規則、Unicode 演進、資料庫/國家字元集分工,配合 DMU 遷移工具,才能在全球化應用中行穩致遠。