【点击:】 阿木伯 著 |
|
在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
|
【最后更新:】 |
|