Ubuntu 9.04 (Jaunty) 透過 Oracle 官方 Debian 倉庫安裝 Oracle 10g XE,預設建立 WE8MSWIN1252 (Western European) 字元集資料庫,導入 UTF-8 備份時發生亂碼。本文記錄正確安裝 AL32UTF8 (Universal) 字元集版本的完整步驟:配置 APT 源、匯入 GPG 金鑰、安裝 oracle-xe-universal 套件、驗證字元集。
| 版本 | 套件名稱 | 字元集 | 適用場景 |
|---|---|---|---|
| Western European | oracle-xe | WE8MSWIN1252 (單位元組) | 僅支援西歐語系 |
| Universal | oracle-xe-universal | AL32UTF8 (多位元組 Unicode) | 支援全球語言,含中文 |
早期安裝 oracle-xe 導致匯入 UTF-8 DMP 出現亂碼,必須重裝 Universal 版本。
sudo vim /etc/apt/sources.list
# 新增下列行
deb https://oss.oracle.com/debian unstable main non-free
wget https://oss.oracle.com/el4/RPM-GPG-KEY-oracle -O- | sudo apt-key add -
sudo apt-get update
sudo apt-get install oracle-xe-universal
安裝過程同 93083 互動式配置 Port/密碼。
sudo /etc/init.d/oracle-xe configure # 若安裝未自動觸發
sudo /etc/init.d/oracle-xe start
sqlplus sys as sysdba
-- 登入後
SELECT value FROM nls_database_parameters WHERE parameter = 'NLS_CHARACTERSET';
-- 應回傳 AL32UTF8
# 假設備份檔為 utf8_dump.dmp
impdp sys/pwd@XE DIRECTORY=dp_dir DUMPFILE=utf8_dump.dmp LOGFILE=imp.log
# 或舊版 imp
imp sys/pwd@XE FILE=utf8_dump.dmp FULL=Y LOG=imp.log
中文資料應正常顯示,無亂碼。
apt-get upgrade 可能更新 XE 套件,升級前備份資料庫。正確選擇 oracle-xe-universal 套件,即可在 Ubuntu 上擁有原生 UTF-8 支援的 Oracle 開發環境,避免字元集轉換痛苦。