切換 oracle 客戶端字符集
database characterset (al32utf8) and client character set (zhs16gbk) are different.
character setconversion may cause unexpected results.
note: you can set theclient character set through the nls_lang environment variable or the nls_langregistry key in
hkey_local_machine\software\oracle\key_oraclient11g_home1
好像環境變數的優先順序要高於登錄檔。
當然,環境變數實際上也是登錄檔,即:
hklm\system\currentcontrolset\control\sessionmanager\environment
@echo off
for /f"tokens=1* delims= " %%1 in('reg query "hklm\system\currentcontrolset\control\sessionmanager\environment" /v nls_lang^|findstr /i "reg_sz" ') do setcharset=%%~1
if"%charset%"==" nls_lang reg_sz simplified chinese_china.zhs16gbk" (
echo %charset%
reg add"hklm\system\currentcontrolset\control\session manager\environment"/v nls_lang /t reg_sz /d "simplified chinese_china.al32utf8" /f
) else (
echo %charset%
reg add"hklm\system\currentcontrolset\control\session manager\environment"/v nls_lang /t reg_sz /d "simplified chinese_china.zhs16gbk" /f
這只是示例,最終要以伺服器上的字符集為準。
《切換 ORACLE 客戶端字符集 》補充
切換 oracle 客戶端字符集 補充 1 儘管兩端的字符集不同,al32utf8 有可能是會自動轉換成 zhs16gbk 的,因此,可以不必計較這個提示,只要能生成使用就可以。2 有可能轉換以後,反而客戶端就不正常了。3 執行這個批處理以後,並不會立即生效。通常需要重啟系統,才會使環境變數的修改生...
修改oracle客戶端字符集
當本機oracle設定的字符集與伺服器端的字符集不一致時,非英文本元會變成亂碼,以下是解決方案 1,檢視伺服器和本地客戶端的字符集 其實檢視伺服器的就可以了 資料庫伺服器字符集select from nls database parameters,其 於props 是表示資料庫的字符集。客戶端字符集...
oracle 需要設定字符集客戶端與服務端相同
system.environment.setenvironmentvarible nls lang simplified chinese china.zhs16gbk windows 提供了api函式setenvironmentvariable,不過這個函式只能修改當前程序的環境變數,而不能修改其他...