使用 SQL*Plus 連線 Oracle 時顯示 ???? 亂碼,主因是伺服器端與用戶端字元集設定不一致。
JA16SJIS| Shell | 指令 |
|---|---|
| csh/tcsh | setenv NLS_LANG American_Japan.JA16SJIS |
| bash/sh/ksh | export NLS_LANG=American_Japan.JA16SJIS |
中文字元集請參考東亞語言列表對應修改(如 ZHT16BIG5、ZHS16GBK、AL32UTF8 等)。
| Shell | 指令 |
|---|---|
| csh | setenv ORA_NLS10 $ORACLE_HOME/nls/data |
| bash | export ORA_NLS10=$ORACLE_HOME/nls/data |
| Shell | 指令 |
|---|---|
| csh | setenv ORA_NLS33 $ORACLE_HOME/ocommon/nls/data |
| bash | export ORA_NLS33=$ORACLE_HOME/ocommon/nls/data |
用戶端 NLS_LANG 的「字元集」部分必須與伺服器端資料庫字元集(或兼容超集)一致,「語言_地區」部分依作業系統語系設定即可。