oracle remap schema,有关触发器(ORA-39083,ORA-00942)的Oracle IMPDP REMAP_SCHEMA问题是否有一个很好的解决方法?...

可以使用Oracle数据泵导入工具(IMPDP.EXE)使用REMAP_SCHEMA选项将一个模式导入另一个模式.但是,存在一个问题,即触发器未正确重新映射.这导致触发器根本没有创建错误,如下所示:

ORA-39083: Object type TRIGGER Failed to create with error: ORA-00942: table or view does not exist Failing sql is: CREATE TRIGGER "**NEW_SCHEMA**"."METER_ALARMS_BI" BEFORE INSERT ON

**OLD_SCHEMA**.METER_ALARMS ...

原因是因为create sql仍然引用OLD_SCHEMA.它确实在Oracle文档中说:

The mapping may not be 100 percent

complete,because there are certain

schema references that Import is not

capable of finding. For example,

Import will not find schema references

embedded within the body of

definitions of types,views,

procedures,and packages.

恕我直言,这是甲骨文的一个警察,但这是另一个讨论!

根据Oracle Metalink说明750783.1,解决方法是:

Create a sqlFILE to include the relevant DDL command(s):

impdp system/****** directory=test_dp

DUMPFILE=export_schemas.dmp

remap_schema=u1:u2 sqlfile=script.sql

Extract the affected DDL from the written sqlFILE and correct the

schema reference. Then execute the command manually.

这不是一个好方法,特别是如果你有许多失败的对象,并希望在数据库的现场升级中自动化组合多个模式的过程.

有没有人找到更好的方法来做到这一点?如果要在现场使用,我需要一个必须100%可靠的解决方案.我可以解析生成的sql文件,但可以100%正确吗?是否有一些方法可以拦截IMPDP执行的CREATE sql语句并在导入时动态更正?可以直接修补DMP文件吗?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值