您的位置:

oracle字符集碰到java,Oracle字符集

本文目录一览:

java oracle如何统一编码,中文乱码

首先查看数据库编码:

select * from nls_database_parameters where parameter ='NLS_CHARACTERSET';

这个编码是否和你java的编码一致,如果不一致,建议先尝试修改java的编码,如果java编码不能改变,而且你有修改oracle码制的权限,并且可以修改(慎用!)

例如目前数据库环境的字符集是AL32UTF8,那么把它改成ZHS16GBK

1.首先以sysdba的身份登录上去 conn /as sysdba

2.关闭数据库shutdown immediate;

3.以mount打来数据库,startup mount

4.设置session

 SQLALTER SYSTEM ENABLE RESTRICTED SESSION;

SQL ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

SQL ALTER SYSTEM SET AQ_TM_PROCESSES=0;

5.启动数据库

alter database open;

6.修改字符集

ALTER DATABASE CHARACTER SET ZHS16GBK;

这会可能会报错,提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改:

 ALTER DATABASE character set INTERNAL_USE ZHS16GBK;

这条语句就可以了,TERNAL_USE提供的帮助就会使oracle绕过了子集与超集的验证,这条语句和上面的语句内部操作时完全相同的。

7.关闭,重新启动

SQLshutdown immediate;

SQL startup

当然字符集最好不要轻易修改,因为这会对数据库的数据有直接的影响,如果是生产环境的话,可能会造成不可估计得损失。

oracle数据库编码会影响java程序编码么

不会的,这是2个程序,oracle只是存取数据,而java程序编码通常用MyEclipse之类的工具,互相没有什么太大的影响,当然如果数据库存入的是乱码,JAVA程序取出来也是一样的会乱码。

java读取oracle数据库里面的数据生成xml文件,生成的xml文件出现乱码怎么解决

跟踪问题所在:

1、查询一下数据库,判断在数据库中的时候,是否是已经存在了乱码。

2、在读取到Java的时候,你用SystemOut输出一下,判断这个时候,是否是乱码。

3、写入到xml文件的时候,XML中是否是乱码。

如果是1种情况出现乱码,则是写入数据库的时候出现乱码,需要更改写入程序的代码。

如果是2种情况出现乱码,则是读取Oracle的字符集出现错误,设置读取的字符集。

如果是3种情况出现乱码,则是在Java类中写入的时候,设置字符集,查看数据库字符集,设置为UTF-8、或者是GBK字符集。

希望对你有帮助。

oracle 8i, 字符集为US7ASCII,java 取汉字乱码,怎么处理,求高手解答!

由于数据是以一个个字节的方式读进去的的,一个汉字2个字节,是分2次读进去的的,如果你指定了byte数组的大小,但是长度为奇数,则乱码;即使你没有指定数组大小,也会乱码。最好的方式就是将全部输入的数据暂时放到一块内存中,然后一次性从内存中读取数据,这就要使用BufferedReader类来完成!希望你能够明白!

java查询ORACLE数据乱码,不能转码什么原因

首先你要清楚乱码的原因,就是存储和读取的编码不一致导致的。

你存储的编码是US7,读的时候用GBL,肯定会乱码

我觉得US7的编码本身就不支持中文,是否应该修改oracle数据库的配置呢

客户端字符集不一定是要和服务器端字符集一致。Oracle的客户端会自动转换。但是这种转换必须是可行的。例如服务器端是UTF8,客户端是ZHS16GBK就可以,因为UTF8能够描述的字符集是ZHS16GBK的全集。

反过来,如果服务器端是US7ASCII客户端是ZHS16GBK就不可以!