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

数据库 Oracle
Oracle 8i在更新中包含了相关类型的相关记录时在varchar2的运行中会出一些现乱码的问题,以下就是对相关问题的解决。

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创建临时表空间用到的代码的示例

 

责任编辑:佚名 来源: 博客园
相关推荐

2010-05-05 17:29:40

Oracle 8i

2010-04-22 09:08:30

Oracle 8i

2010-04-21 16:07:16

Oracle 8i

2010-04-13 13:41:47

Oracle 字符集

2010-05-04 09:34:18

Oracle em

2009-01-06 09:14:08

8i9ioracle

2010-04-14 11:42:36

Oracle进程

2010-05-06 10:01:25

Oracle数据库

2010-04-12 11:37:57

Oracle RAC

2009-06-12 12:37:38

Java软件

2010-06-04 15:57:03

PHP+MYSQL

2009-07-06 18:53:52

ESXESX主机VMware

2009-11-30 13:04:38

PHP获取Oracle

2010-03-26 09:42:22

CentOS MAKE

2011-04-01 15:09:08

MRTG乱码

2010-05-07 10:06:10

Oracle PL D

2010-05-04 10:51:53

Oracle数据库

2018-01-24 19:59:03

数据库Oracle坏块

2010-06-04 17:58:09

MySQL远程连接

2010-05-13 10:09:18

MySQL编码
点赞
收藏

51CTO技术栈公众号