Oracle XE 的字符集修改

    今天在把软件公司做好的数据库导入 Oracle XE 时,总是会出错,仔细看了一下,是12899的错误信息,好像是说字段不够长。上网查了一下,解释如下:
对于字符集是ZHS16GBK的oracle10.2.0.1企业版,所导出的数据,如果带有汉字,就可能导不进去。(而对于国内数据库,ZHS16GBK是常用的字符集设置。)例如,某字段在企业版中定义为varchar2(4),保存数据为''田田'',则导入oraclexe时,该字段定义仍为varchar2(4),但数据''田田''就需要占用6个字符长度,出现的问题如下所示:
IMP-00019: 由于 ORACLE 错误 12899 而拒绝行
IMP-00003: 遇到 ORACLE 错误 12899
ORA-12899: 列 "TEST"."TEST_TIANYC"."A" 的值太大 (实际值: 6, 最大值: 4)

    但是文章给出的解决办法太麻烦,要删了数据库重建。于是再找。总算找到简单的方法:
connect system as sysdba
shutdown immediate
startup mount
alter system enable restricted session;  
alter system set JOB_QUEUE_PROCESSES=0;  
alter system set AQ_TM_PROCESSES=0;  
alter database open;  
alter database character set internal_use ZHS16GBK;
shutdown immediate; 
startup;

    试了一下,果然奏效,没有报那个错了。

文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: Oracle XE  字符集 
评论: 0 | 引用: 0 | 查看次数: 1348
发表评论
用户名:
密 码: 游客发言不需要密码.
验证码: 验证码
内 容:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 500 字 | HTML代码允许 关闭 | 评论可修改 关闭