重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
在 DBeaver 中连接 Oracle 数据库显示乱码的解决方法可能有多种,下面列举几种常见的方法:
成都创新互联主要从事成都网站建设、做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务沙湾,十年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
修改字符集: 修改 DBeaver 的字符集设置为与 Oracle 数据库的字符集相同,可以在 DBeaver 中的首选项 - 数据库 - Oracle 中设置。
修改环境变量: 编辑环境变量 NLS_LANG 设置为与 Oracle 数据库的字符集相同。
修改数据库连接字符集:在连接 Oracle 数据库时将字符集设置为与 Oracle 数据库的字符集相同。
修改客户端配置文件:修改客户端的配置文件,如 client/network/admin/sqlnet.ora 将字符集设置为与 Oracle 数据库的字符集相同。
修改SQL语句:在执行的SQL语句中加入 nls_lang 语句来解决乱码问题。
首先,检查DB中字符集,可以通过以下的SQL来查得,
SELECT * FROM v$nls_parameters;
或者
SELECT USERENV ('language') FROM DUAL;
比如查询结果:
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
那么字符集就是:ZHS16GBK;
然后设置客户端的本地字符集:
注册表:
默认情况下,windows上的Oracle安装使用注册表来定义这个设置。
版本 10g 及以上:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_oracle_home_name
这里您会看到一个条目名为NLS_LANG
在64位windows平台上安装32位软件,会使用32位兼容性路径
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_oracle_home_name
或者环境变量:'我的电脑' - '属性' '高级' - '环境变量'
增加一个:nls_lang = SIMPLIFIED CHINESE_CHINA.ZHS16GBK
重启一下机器就可以了。
字符集的问题
如果是应用应用服务器连接的数据库,查看和修改应用服务器的字符集与oracle数据库字符集是否一致。
如果是通过oracle客户端(包括pl/sql developer )等连接的数据库,查看和修改该客户端使用的oraclehome的字符集设置,一般在注册表中。具体根据使用的oracle客户端查找。