切换 ORACLE 客户端字符集

前端之家收集整理的这篇文章主要介绍了切换 ORACLE 客户端字符集前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

切换 ORACLE 客户端字符集


如果我们需要连接不同的数据库,而这些数据库又有不同的字符集,在登录 plsql developer 时会有提示

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

好像环境变量的优先级要高于注册表。

当然,环境变量实际上也是注册表,即:

@H_502_21@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相关文章