您好,登錄后才能下訂單哦!
通過putty sql_plus 連接數據庫報錯:
ORA-12705:Cannot access NLS data files or invalid environment specified
此問題主要是putty登錄后的系統linux/windows當前環境變量NLS_LANG設置和數據庫NLS_LANG參數變量不一致導致.
NLS_LANG參數由以下部分組成:NLS_LANG=[Language]_[Territory].[Clients Characterset]
NLS_Language 指定:
NLS_Territory 指定:
客戶端字符集(CLIENTS CHARACTERSET):
1.首先查詢數據庫的語言字符集環境變量;
SELECT
(SELECT VALUE from nls_database_parameters
WHERE parameter='NLS_LANGUAGE')
||'_'||
(SELECT VALUE from nls_database_parameters
WHERE parameter='NLS_TERRITORY')
||'.'||
(SELECT VALUE from nls_database_parameters
WHERE parameter='NLS_CHARACTERSET') NLS_LANG
FROM dual;
注意:
select userenv('language') from dual;
--或
select * from v$nls_parameters;
如上查詢只能查詢出數據庫當前session的語言字符集,
2.在putty linux 中查詢當前的環境變量NLS_LANG是否和數據庫語言字符集保持一致.
env | grep NLS_LANG
3.不一致則使用export 命令設置linux環境變量NLS_LANG的值
linux例如:export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
如果要永久更新此變量需要在.bash_profile文件中設置或添加的NLS_LANG
例如:vi ~/.bash_profile
注:遠程機器如果為windows;
windows設置NLS_LANG有三種方式
1.cmd命令如下:set nls_lang=AMERICAN_AMERICA.AL32UTF8
2..注冊表設置(永久生效)
默認情況下,windows上的Oracle安裝使用注冊表來定義這個設置。
版本 10g 及以上:
HKEY_LOCALMACHINE\SOFTWARE\ORACLE\KEY<oracle_home_name>
這里您會看到一個條目名為NLS_LANG
在64位windows平臺上安裝32位軟件,會使用32位兼容性路徑
HKEY_LOCALMACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY<oracle_home_name>
3..操作系統環境變量
盡管注冊表是Microsoft Windows設置的主要存儲位置,它不是唯一可以設置參數的地方。
雖然不推薦,但您可以設置NLS_LANG為系統屬性中的系統或者用戶變量。這個設置會被所有Oracle home使用。
設置位置: '我的電腦' -> '屬性' > '高級' -> '環境變量'
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。