Oracle 字符集修改(ORA-29275 )
来源:互联网 发布:通用软件系统解决方案 编辑:程序博客网 时间:2024/05/22 04:31
今天有朋友数据库出现ORA-29275 部分多字节字符,对应的字段只能用to_char才能正常查询,感觉是字符集问题。询问之果然修改过字符集。
他的修改方式:
SQL>STARTUP MOUNT; SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION; SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0; SQL>ALTER DATABASE OPEN; SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;
查看数据库:
SQL> select name,value$ from props$ where name like '%NLS%';NAME VALUE$------------------------------ ------------------------------NLS_LANGUAGE AMERICANNLS_TERRITORY AMERICANLS_CURRENCY $NLS_ISO_CURRENCY AMERICANLS_NUMERIC_CHARACTERS .,NLS_CHARACTERSET ZHS16GBKNLS_CALENDAR GREGORIANNLS_DATE_FORMAT DD-MON-RRNLS_DATE_LANGUAGE AMERICANNLS_SORT BINARYNLS_TIME_FORMAT HH.MI.SSXFF AMNLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AMNLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZRNLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZRNLS_DUAL_CURRENCY $NLS_COMP BINARYNLS_LENGTH_SEMANTICS BYTENLS_NCHAR_CONV_EXCP FALSENLS_NCHAR_CHARACTERSET AL16UTF16NLS_RDBMS_VERSION 11.2.0.1.0确实已经修改好了。但是这里:
ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;是非常有问题的,这里跳过字符集子集检查,强制进行修改。
所以以后的数据将会出现问题。
那么我们使用exp/imp在导出的时候指定字符集进行转换呢?
引入一篇文章的部分段落:
9i之前的版本:在源数据库的字符集和export的session的NLS_LANG设置不同时,所有数据的字符集(用户数据和字典数据)均会转换;
在import过程中,如果import session的NLS_LANG和export时不一致,将会将dmp中的字符集转换成import session的NLS_LANG设置成的字符集;
当import session的NLS_LANG和目标数据库的字符集不一致时,将会发生公import session的NLS_LANG字符集到目标数据库的字符集转换
9i及之后的版本:在源数据库的字符集和export的session的NLS_LANG设置不同时,只有字典数据会发生字符集转换,用户数据则和源数据库的字符集一致,而忽略NLS_LANG的设置;
在import过程中,如果import session的NLS_LANG和export时不一致,将会将dmp中的字符集转换成import session的NLS_LANG设置成的字符集;
当import session的NLS_LANG和目标数据库的字符集不一致时,将会发生公import session的NLS_LANG字符集到目标数据库的字符集转换
其实都没关系,不管你用什么办法转换,只要转换的字符集不是原字符集的超集都是有问题的:
所以我们在修改数据库字符集的时候,执行如下语句:
ALTER DATABASE CHARACTER SET ZHS16GBK
如果没有报:
SYS@zbdba>ALTER DATABASE CHARACTER SET ZHS16GBK;ALTER DATABASE CHARACTER SET ZHS16GBK*ERROR at line 1:ORA-12712: new character set must be a superset of old character set那说明可以修改。如果有以上错误,建议不要修改强制修改字符集
- Oracle 字符集修改(ORA-29275 )
- oracle 修改服务端字符集导致ORA-12712错误
- ORACLE 字符集乱码 修改字符集
- Oracle字符集修改问题
- oracle 修改字符集
- Oracle修改字符集
- 修改oracle的字符集
- 修改oracle默认字符集
- oracle 修改字符集
- 修改oracle数据库字符集
- 修改oracle字符集
- Oracle字符集修改
- 修改ORACLE字符集
- 修改oracle字符集
- 修改oracle字符集
- 修改Oracle数据库字符集
- Oracle修改字符集全过程
- oracle 修改字符集
- 学习 Smack(一)
- oracle raw类型
- java.lang.NullPointerException
- 归并排序
- RemObjects SDK Source For Delphi XE7
- Oracle 字符集修改(ORA-29275 )
- Fedora 20/21,删除旧系统内核
- numpy 函数库的常见函数操作
- AJAX 分页 asp.net分页
- 【MFC】ADO数据库操纵access
- 新的征程
- Jaspersoft Studio 下载地址
- c#,php,java,pascal(delphi)学习过程比较:一,变量
- Qt——数组转换成字符串