我是靠谱客的博主 霸气发夹,最近开发中收集的这篇文章主要介绍oracle导入mysql文件报错_oracle导入数据库报错:IMP-00019: 由于 ORACLE 错误 12899 而拒绝行 IMP-00003: 遇到 ORACLE 错误 12899...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

主要是字符集 成 导入的Oracle服务器的字符集 对应不上.

以下方案为是修改服务器的字符集.    这样会影响之前的Oracle其他数据库的数据显示(正式服务器慎用)

个人认为应该修改导出文件的字符集比较合理一些.  没测试过.

情景重现:

从oracle 10g环境下exp出来的数据,imp到10g数据库的时候就出现下面这个错误。

IMP-00019: 由于 ORACLE 错误 12899 而拒绝行

IMP-00003: 遇到 ORACLE 错误 12899

ORA-12899: 列 "JACKEYJ"."JK_REGISTER"."OPNAME" 的值太大 (实际值: 21, 最大值: 20)

列 1 523

可能的原因:操作系统类型不同导致的。

解决方法:

修改oracle 10g的字符集

Oracle

修改数据库字符集为:ZHS16GBK

在oracle目录下 打开应用程序开发--> SQL Plus,然后:

查看服务器端字符集SQL > select * from V$NLS_PARAMETERS

修改:$sqlplus /nolog

SQL>conn / as sysdba  (ps: 在cmd中可以直接粘贴)

若此时数据库服务器已启动,则先执行 SHUTDOWN IMMEDIATE 命令关闭数据库服务器,

然后执行以下命令:

SQL>shutdown immediate;

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 ZHS16GBK;

接下来可能出现两种情况:

ERROR at line 1  RA-12721: operation cannot execute when other sessions are active

1、若出现上面的错误,使用下面的办法进行修改,使用INTERNAL_USE可以跳过超集的检查:

SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;

ORA-12712: new character set must be a superset of old character set

RROR at line 1:

2、结果报错,提示新字符集必须是老字符集的超集。

于是强制转换

>ALTER DATABASE character set INTERNAL_USE ZHS16GBK;

最后步骤:

>shutdown immediate;

>STARTUP;

最后

以上就是霸气发夹为你收集整理的oracle导入mysql文件报错_oracle导入数据库报错:IMP-00019: 由于 ORACLE 错误 12899 而拒绝行 IMP-00003: 遇到 ORACLE 错误 12899...的全部内容,希望文章能够帮你解决oracle导入mysql文件报错_oracle导入数据库报错:IMP-00019: 由于 ORACLE 错误 12899 而拒绝行 IMP-00003: 遇到 ORACLE 错误 12899...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部