DB2 字符集配置分三層,修改權限遞減:
| 層級 | 參數/設置 | 作用範圍 | 可否修改 |
|---|---|---|---|
| 系統級 | OS Locale (LANG/區域選項) | 應用程序默認代碼頁 | ✅ 可修改 |
| 實例級 | DB2CODEPAGE | DB2 應用代碼頁判定與轉換 | ✅ 可修改 |
| 數據庫級 | DATABASE CODESET / TERRITORY | 數據庫存儲編碼、排序規則 | ❌ 建庫時固化,不可變 |
export LANG=zh_CN.UTF-8 (寫入 /etc/profile 或用戶 .bash_profile 永久生效)。實例擁有者下執行:
db2set DB2CODEPAGE=1386 # 1386 = GBK/CP936; 1208 = UTF-8
db2stop && db2start # 必須重啟實例生效
注意: 僅影響該實例下新建連接的代碼頁判定,不改變已有數據庫存儲編碼。
db2 "CREATE DATABASE mydb USING CODESET UTF-8 TERRITORY CN"
CODESET UTF-8 (或 1208):存儲編碼為 Unicode,支援全字符集,推薦新建庫首選。TERRITORY CN:區域設置為中國,決定日期/貨幣/排序規則。鐵律: 數據庫建立後 無法修改 CODESET/TERRITORY,規劃階段務必確認。
charSet=UTF-8 連接屬性,繞過環境變量不確定性。