我使用impdp将转储从OLD_SCHEMA
导入NEW_SCHEMA
。除了10个包之外,所有包都看起来很好,错误是它们引用了旧的模式,即它们中的表名附加了OLD_SCHEMA
。即OLD_SCHEMA.table_name
。我检查了他们看起来与正确包装中相同的同义词。
有没有办法解决它?
答案 0 :(得分:0)
要解决此问题,您可以根据需要提供多种可能性。
在导入命令中使用REMAP_SCHEMA
选项:
REMAP_SCHEMA=source_schema:target_schema
从包中删除模式名称并仅使用同义词。这限制了您在不同模式上具有相同名称的对象。
有一个脚本从所有包中提取源,用一些正则表达式重命名模式,并通过重新编译新数据库上的代码重新注入源;要提取源,请使用dbms_metadata.get_clob
;那么你需要更改CLOB
中的文字的部分会变得有点棘手,但这很有趣。