打开SQLPlus Worksheet时,汉字全是乱码?怎么办?(oracle816)

heyongzhou 2001-09-05 10:57:51
...全文
181 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
佣工7001 2001-09-05
  • 打赏
  • 举报
回复
找到以前的答案:

在SQL*Plus中insert进的都是中文的,为什么一存入服务器后,再select出的就是???了?


错误现象:
1、有的时候,服务器数据先导出,重装服务器,再导入数据,结果,发生数据查询成???。
2、有时,服务器设置就有问题,字符集设成单字节了。
错误原因:
一般,是因为字符集设置不对照成的。
解决方法:
1、检查服务器上Oracle数据库的字符集

SQL> conn sys/change_on_install
连接成功.

SQL> desc props$
列名 可空值否 类型
------------------------------- -------- ----
NAME NOT NULL VARCHAR2(30)
VALUE$ VARCHAR2(2000)
COMMENT$ VARCHAR2(2000)

SQL> col value$ format a40
SQL> select name,value$ from props$;

NAME VALUE$
------------------------------ -------------------------
DICT.BASE 2
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_DATE_FORMAT DD-MON-YY
NLS_DATE_LANGUAGE AMERICAN
NLS_CHARACTERSET ZHS16GBK
NLS_SORT BINARY
NLS_CALENDAR GREGORIAN
NLS_RDBMS_VERSION 7.3.4.0.0
GLOBAL_DB_NAME ORACLE.WORLD
EXPORT_VIEWS_VERSION 3

查询到14记录.

NLS_CHARACTERSET这个参数应该是ZHS16GBK,如不是,改为它。

SQL*Plus中修改方法:
SQL> update props$ set value$='新字符集' where name='NLS_CHARACTERSET';

操作系统中修改方法:
connect internal
alter database ORCL character set ZHS16GBK;
alter database ORCL national character set ZHS16GBK;


2、检查操作系统级Oracle汉字显示的字符集

运行regedit,定位到:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE

找到以下字符串
NLS_LANG

检查是否以下内容,如不是,改之
SIMPLIFIED CHINESE_CHINA.ZHS16GBK


KingSunSha 2001-09-05
  • 打赏
  • 举报
回复
修改注册表HKEY_LOCAL_MACHINE\Software\ORACLE\HOME0\NLS_LANG的值,使之与你数据库的字符集相同, 一般改成CHINESE_CHINA.ZHS16CGB231280
佣工7001 2001-09-05
  • 打赏
  • 举报
回复
字符集不对
heyongzhou 2001-09-05
  • 打赏
  • 举报
回复
NLS_LANG值是"SIMPLIFIED CHINESE_CHINA.ZHS16GBK
sqlplus的界面没有乱
乱的是worksheet
佣工7001 2001-09-05
  • 打赏
  • 举报
回复
sqlplus的界面乱了?我不知道sorry
ysli 2001-09-05
  • 打赏
  • 举报
回复
那再请看注册表的HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE中,NLS_LANG值是否是"NA"?
注册表的HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0(诸如HOME*n)中,NLS_LANG值是否是"SIMPLIFIED CHINESE_CHINA.ZHS16GBK"?

不是请改之,如一致的话我就不知道了
heyongzhou 2001-09-05
  • 打赏
  • 举报
回复
字符集的确是 SIMPLIFIED CHINESE_CHINA.ZHS16GBK
没有这个问题
“在SQL*Plus中insert进的都是中文的,
为什么一存入服务器后,再select出的就是???了?”

只有 SQLPlus Worksheet显示中文时出现乱码。
这是何故?

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧