這篇文章主要為大家展示了“sqlplus顯示亂碼怎么辦”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“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顯示亂碼怎么辦”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。