共計 1474 個字符,預計需要花費 4 分鐘才能閱讀完成。
這篇文章主要為大家展示了“sqlplus 顯示亂碼怎么辦”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓丸趣 TV 小編帶領大家一起研究并學習一下“sqlplus 顯示亂碼怎么辦”這篇文章吧。
1、現象
最近使用 oracle 新搭環境發現通過 sqlplus 登陸時,顯示亂碼。
2、解決方案
通過查閱資料發現 sqlplus 亂碼與操作系統用戶中的 NLS_LANG 這個環境變量有關系,如果這個與數據庫字符集不一致的話就會產生亂碼。堅持 NLS_LANG 這個環境變量發現根本就沒有設置這個變量,則應該是讀取操作系統字符集來作為默認字符集。
[oracle@localhost ~]$ echo $NLS_LANG
[oracle@localhost ~]$
如何查看數據庫字符集,通過 nls_database_parameters 查詢,可以得到 NLS_CHARACTERSET 的值為 UTF8 即為數據庫字符集
SQL col parameter for a30
SQL col value for a25
SQL select * from nls_database_parameters;
PARAMETER VALUE
—————————— ————————-
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET UTF8
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM
TZR
NLS_DUAL_CURRENCY $
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_RDBMS_VERSION 11.2.0.1.0
查詢 NLS_LANG 的組成規則為 NLS_LANGUAGE_NLS_TERRITORY.NLS_CHARACTERSET,即操作系統環境變量應該要設置為 AMERICAN_AMERICA.UTF8。
順利解決了亂碼問題,修改.profile(unix 系統) 或.bash_profile,增加
export NLS_LANG= AMERICAN_AMERICA.UTF8
就行了。
以上是“sqlplus 顯示亂碼怎么辦”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!