关于字符集转换的难题,有兴趣的兄弟来瞧瞧。 在数据库表中的记录中有GB和BIG5类型的字符,数据库的字符集是NLS_LANG=AMERICAN_AMERICA.ZHS16CGB231280,在某些时候,select 出来的是乱码。请问各位大侠是否有办法解决这个问题。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 修改成其他字符级试下,能否显示正常。 如‘ZHS16GBK’或‘US7ASCII’之类的字符级 修改字符级,以前有很多帖子,你搜索就能找到了 对于Oracle Enterprise Manager中的所有工具,有一个配置文件名为dbappscfg.properties,修改该文件即可解决上述问题。这个文件的位置在$ORACLE_HOME\sysman\config目录下,用任何的文本编辑器打开该文件,在这个文件里面,找到这样一项,# SQLPLUS_NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1 去掉注释符#,同时将其修改为SQLPLUS_NLS_LANG=AMERICAN_AMERICA.ZHS16GBK。对于Windows操作系统,还需要修改一项,在文件中找到# SQLPLUS_SYSTEMROOT=c:\\WINNT40,去掉注释符,将其修改为你所在机器的操作系统主目录。如操作系统的主目录在D盘的Winnt下,则将其修改为 SQLPLUS_SYSTEMROOT=d:\\WINNT。对于后面一项的修改只对Windows操作系统进行,对UNIX操作系统则不需要。如果在Windows操作系统中不修改该项,在Oracle Enterprise Manager中,连接系统时,会提示如下的错误:ORA-12560 TNS:protocol adapter error 或者 ORA-12545 Connect failed because target host or object does not exist 修改完成后,保存文件,退出编辑。重新连接SQL PLUS Worksheet,字符集乱码问题得到解决,显示正确的简体中文字符集。 SQL--期数转换为X月X日 在串行化事务中对于一个cluster的表插入一条数据再立即select,经常第一次出错,第二次正常,为何? oracle存储过程 oracle7中如何分组排序 oracle 的登录问题 (记所创建的数据库密码) SQL 查询问题。怎么从表里只查询出一组里的一条数据 作业调用过程报权限不够, 过程是重建索引的 Oracle的一些基本问题......... 如何删除某一列的数据? 50分问…… 如何在triggle中,获取用户得IP Oracle技术官方中文论坛开通了!!!
如‘ZHS16GBK’或‘US7ASCII’之类的字符级
修改字符级,以前有很多帖子,你搜索就能找到了
# SQLPLUS_NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
去掉注释符#,同时将其修改为SQLPLUS_NLS_LANG=AMERICAN_AMERICA.ZHS16GBK。
对于Windows操作系统,还需要修改一项,在文件中找到# SQLPLUS_SYSTEMROOT=c:\\WINNT40,去掉注释符,将其修改为你所在机器的操作系统主目录。如操作系统的主目录在D盘的Winnt下,则将其修改为 SQLPLUS_SYSTEMROOT=d:\\WINNT。
对于后面一项的修改只对Windows操作系统进行,对UNIX操作系统则不需要。如果在Windows操作系统中不修改该项,在Oracle Enterprise Manager中,连接系统时,会提示如下的错误:
ORA-12560 TNS:protocol adapter error
或者
ORA-12545 Connect failed because target host or object does not exist
修改完成后,保存文件,退出编辑。重新连接SQL PLUS Worksheet,字符集乱码问题得到解决,显示正确的简体中文字符集。