Oracle ORA-12899错误的解决方法

ORA-12899错误,一般在导入Oracle数据时会报,指插入的数据长度超出字段的设置长度,这是由于Oracle字符集不同,汉字占的长度不同造成的,比如中文在ZHS16GBK中占2个字节,在UTF-8中却占3个字节。下面介绍通过修改字符集解决该错,另外可以增加字段长度解决。
查看字符集的方法可以用PL/SQL DEVELOP —->Reports(报告)—->DBA—->NLS Database Parameters,
字符集查看
打开cmd,开始操作
修改数据库字符集为:ZHS16GBK
查看服务器端字符集SQL > select * from V NLSPARAMETERSTelnet N L S P A R A M E T E R S T e l n e t 到 服 务 器 , 执 行 : sqlplus /nolog
SQL>conn / as sysdba
若此时数据库服务器已启动,则先执行 SHUTDOWN IMMEDIATE 命令关闭数据库服务器,
然后执行以下命令:
SQL>shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>STARTUP MOUNT
ORACLE 例程已经启动。
。。。
数据库装载完毕。
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 ZHS16GBK;
ERROR at line 1:ORA-12721: operation cannot execute when other sessions are active
若出现上面的错误,使用下面的办法进行修改,使用INTERNAL_USE可以跳过超集的检查:)
SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;
数据库已更改。
SQL>SHUTDOWN IMMEDIATE
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>STARTUP
ORACLE 例程已经启动。
。。。
数据库装载完毕。
数据库已经打开。

执行数据导入IMP任务,将不会报类似错误。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值