Oracle-Window-SqlPlus-Garbled-Code-1

Oracle SqlPlus 错误代码后的信息显示乱码

转载:https://blog.csdn.net/qungmu/article/details/79969306
转载:https://blog.csdn.net/qq_22472921/article/details/82020842

编码格式查看

1、查询 Oracle Server 端的字符集

有很多种方法可以查出 Oracle Server 端的字符集,比较直观的查询方法是以下这种:

SELECT USERENV('LANGUAGE') FROM DUAL;
结果如下:AMERICAN _ AMERICA. ZHS16GBK。

2、查询 DMP 文件的字符集

用 Oracle 的 EXP 工具导出的 DMP 文件也包含了字符集信息,DMP 文件的第 2 和第 3 个字节记录了 DMP 文件的字符集。如果 DMP 文件不大,比如只有 几M 或 几十M,可以用 ULTRAEDIT 打开( 16 进制方式),看第 2 第 3 个字节的内容,如 0354,然后用以下SQL查出它对应的字符集:

SELECT NLS_CHARSET_NAME(TO_NUMBER('0354','XXXX')) FROM DUAL;
ZHS16GBK

3、查询 Oracle Client 端的字符集

在 WINDOWS 平台下,就是注册表里面相应 OracleHome 的 NLS_LANG

计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\KEY_OraDB12Home1

注册表信息

NLS_LANG 默认为 SIMPLIFIED CHINESE_CHINA.ZHS16GBK

修改客户端的字符编码

1、修改注册表中数据库编码输出方式

注册表位置

计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\KEY_OraDB12Home1

按照数据库编码的输出改为(要与数据库编码格式一致)

SIMPLIFIED CHINESE_CHINA.US7ASCII
或者
AMERICAN_AMERICA.ZHS16GBK
或者
NLS_LANGUAGE=AMERICAN

2、进入 CMD DOS 界面后执行如下

SET NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

Contents
  1. 1. Oracle SqlPlus 错误代码后的信息显示乱码
    1. 1.1. 编码格式查看
      1. 1.1.1. 1、查询 Oracle Server 端的字符集
      2. 1.1.2. 2、查询 DMP 文件的字符集
      3. 1.1.3. 3、查询 Oracle Client 端的字符集
    2. 1.2. 修改客户端的字符编码
      1. 1.2.1. 1、修改注册表中数据库编码输出方式
      2. 1.2.2. 2、进入 CMD DOS 界面后执行如下
|