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文件吗?
有一个REMAP_SCHEMA选项.不确定它是否比DATAPUMP更好用(我怀疑DATAPUMP会在封面下使用DBMS_MetaDATA).但是“后处理”输出会更容易.
原文地址:https://www.jb51.cc/oracle/205164.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。