ORACLE字符集为US7ASCII,插入数据,中文乱码问题解决

ORACLE字符集为US7ASCII,插入数据,中文乱码问题解决1 可以通过 select from nls database parameters where parameter NLS CHARACTERSET 查到 ORACLE 的字符集 US7ASCII 是数据库默认的字符集 需要转为 ISO 8859 1 而中文的话需要通过 GBK 来获取其 byte 序列 2 如果为 US7ASCII 的话

大家好,我是讯享网,很高兴认识大家。

1、可以通过select * from nls_database_parameters where parameter ='NLS_CHARACTERSET';查到ORACLE的字符集

US7ASCII是数据库默认的字符集,需要转为ISO_8859_1,而中文的话需要通过GBK来获取其byte序列。

 2、如果为US7ASCII的话 ,在插入数据的时候需要把有中文的字段组以下处理:

String name = "李四";
String temp = new String(name .getBytes("GBK"),"ISO_8859_1");
 

3、客户端编码查询: select * from nls_instance_parameters where parameter='NLS_LANGUAGE';

 

修改oracle的字符集:

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

2.关闭数据库shutdown immediate;

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

4.设置session 


讯享网

SQL>ALTER 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.关闭,重新启动

小讯
上一篇 2025-02-26 20:22
下一篇 2025-02-10 08:46

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/69909.html