IMP-00058, ORA-1438

Subject: Import Fails with IMP-00058, ORA-1438 Errors Doc ID: Note:185229.1 Type: PROBLEM Last Revision Date: 28-JUL-2005 Status: PUBLISHED fact: Oracle Server - Enterprise Edition fact: Export Utility (EXP) fact: Import Utility (IMP) symptom: Running an import fails symptom: IMP-00058: ORACLE error 1438 encountered symptom: ORA-01438: value larger than specified precision allows for this column symptom: IMP-00018: partial import of previous table completed: 178731 rows imported cause: These symptoms can unfortunately be encountered if there is some form of corruption within the EXPORT database. However it can also be encountered when IMPORTING into the same or new database where the table has been recreated with an incorrect column definition. fix: The fix will depend on whether the symptoms are caused due to corruption or due to the incorrect creation of objects. If the former then it will be necessary to handle the corruption problem first and there is no set procedure for this since it will depend on scale. If the latter we should be able to workaround the problem using a testcase to explain the principles involved :- EXPORT DATABASE --------------- sqlplus system/manager create user exporttest identified by exporttest default tablespace USERS; grant dba to exporttest connect exporttest/exporttest create table precisiontest (num number(2)); insert into precisiontest values ('10'); --------------&gt this will work as expected commit; exit; exp exporttest/exporttest file=expdat.dmp tables=precisiontest IMPORT DATABASE --------------- (if the same as the EXPORT database then assume that we have dropped and recreated the table, also no need to recreate the user exporttest) sqlplus system/manager create user exporttest identified by exporttest default tablespace USERS; grant dba to exporttest connect exporttest/exporttest create table precisiontest (num number(1)); commit; exit; imp exporttest/exporttest file=expdat.dmp tables=precisiontest ignore=y The IMPORT will fail with IMP-00058 and ORA-01438 errors because we are now attempting to insert the value '10' into a column that has been defined as NUMBER(1). If export and import databases are different we can do a DESCRIBE on the table in question to see if they are the same. If only one database exists we can look at rerunning the IMPORT with :- event="1438 trace name errorstack level 10" This will show us what record we are failing on and will hopefully indicate what column needs to be corrected within the table so that the IMPORT can be performed successfully.[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/190276/viewspace-902822/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/190276/viewspace-902822/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值