欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Oracle Faq(Oracle的字符集问题)

程序员文章站 2022-10-02 19:00:37
1、在建库时,catproc一定要运行,否则用rman时会出现如下字符集的错误:rman-00554: in...

1、在建库时,catproc一定要运行,否则用rman时会出现如下字符集的错误:
rman-00554: initialization of internal recovery manager package failed
rman-04005: error from target database: ora-06553: pls-213: package standard noe
rman-04015: error setting target database character set to zhs16cgb231280
如果建库时没有问题,那么可以re-run catproc.sql. this will in turn call the dbmsbkrs.sql script which creates the dbms_backup_restore package.

2、中文字符集说明
zhs16cgb231280 cgb2312-80 16-bit simplified chinese mb, ascii
zhs16gbk gbk 16-bit simplified chinese mb, ascii, udc
简单地说zhs16gbk是zhs16cgb231280的超集。
一九九○年中国、日本、韩国共同制定的统一东亚表意文字字符集,即常称的国标扩展码字符集(gbk)。

3、如何避免中文支持问题
我们的一贯建议是在建库时就做好规划,这样以后就不会有问题了。
1)create database
character set zhs16gbk
national character set zhs16gbk
2)环境变量:nls_lang=american_america.zhs16gbk
最好export nl2004-10-20_format='yyyy-mm-dd hh24:mi:ss'指明日期格式;
3)如果建库时指定了props$中characterset肯定就是zhss16gbk了:
nls_characterset zhs16gbk
nls_nchar_characterset zhs16gbk
如果不是可以使用update改变,但这样做对于已有数据会有影响,甚至会导致整个数据库不能用,所以还是在建库之后就进行验证,一个好的dba就是能够尽量避免问题的发生,而不是等到出了问题再去救火。

如此一来就不会再有字符集和中文支持的问题了。还有问题吗?和我联系:)