Oracle 8i更新相关类型中出现乱码问题的解决

Oracle 8i在更新中包含varchar2和date类型的相关记录时varchar2会出现乱码问题,虽然Oracle 8i以前就被人使用,现在用的人并不占多数,但是毕竟还是有一部分的人在用的,比如遇到乱码等相关问题的介绍。

问题描述:

环境:windows XP,Oracle 8i 8.1.6.0.0

问题:使用JDBC连接数据库,在同时更新一个包含varchar2和date类型的记录时,某个varchar2会出现乱码,无论英文还是中文,并且还有可能同一个字段前半部分乱码后半部分不乱码。同样的sql语句,使用sqlplus执行就没有问题。

问题解决:

首先,用DBA的权限执行下面的语句:

select tab1.aa||'_'||tab2.bb||'.'||tab3.cc from (select VALUE$ aa from sys.props$ where name='NLS_LANGUAGE')tab1,(select VALUE$ bb from sys.props$ where name='NLS_ISO_CURRENCY')tab2,(select VALUE$ cc from sys.props$ where name='NLS_CHARACTERSET')tab3

在Oracle 8i运行中要更新复制上面语句的执行结果,在我的机器上执行的结果是:AMERICAN_AMERICA.ZHS16GBK打开注册表,找到HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0,找到NLS_LANG,双击,将数值数据改为刚复制的那个

修改完注册表,重启机器。在这里可能有一些问题,首先如果你的ORACLE不是一次安装成功的,那么可能有HOME0,HOME1等,在我的经历中,首先将HOME1中的NLS_LANG改了,但是问题依旧,然后将HOME0中改了,问题才解决,所以改的时候把所有的HOMEX中NLS_LANG的都改了吧,如果没有就新建一个。

其次,单改注册表可能还会出现问题,这时候就要改jdbc驱动了,不要用那些10g,9i,8i通吃的驱动,去oracle安装目录中的jdbc目录找,用这里的驱动问题解决。

 以上就是对Oracle 8i更新包含varchar2和date类型的记录时varchar2乱码的相关内容的介绍,望你会有所收获。

【编辑推荐】

  1. Oracle EXP的实际应用方案详解
  2. Oracle exp备份的实际操作描述
  3. Oracle exp备份使用sysdba进行导出和导入的操作
  4. Oracle exp备份机上安装oracle10.1都需添加的内容
  5. Oracle创建临时表空间用到的代码的示例

分享名称:Oracle 8i更新相关类型中出现乱码问题的解决
文章路径:http://www.shufengxianlan.com/qtweb/news9/441109.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联