到目前为止,我知道将架构导入另一个数据库的最快方式是通过Toad for Oracle的“导入/导出实用程序”。
但是,每次我们从架构A导入到架构B(选择导入用户)时,触发器仍会引用旧架构。
例如,导入过程尝试运行此代码:
CREATE OR REPLACE TRIGGER B.CONTACT_DETAILS_bir
BEFORE INSERT ON A.CONTACT_DETAILS FOR EACH ROW
BEGIN
SELECT A.CONTACT_DETAILS_seq.NEXTVAL
INTO :new.id
FROM dual;
END;
/
毋庸置疑,脚本失败,因为目标数据库中不存在A.CONTACT_DETAILS。
无论如何都要避免这种不匹配?
答案 0 :(得分:1)
我已经问过负责Toad这个区域的开发人员,这是他的回应;他不在StackOverflow上。
Import Utility实际上是Oracle产品。蟾蜍给你 用于创建运行命令的GUI。 IMP没有参数 我知道哪个会解析你的触发器并改变它们 指向新架构。我不确定,但我不这么认为 甲骨文会认为这是一个错误。一种可以防止问题的方法 是在触发器代码中根本没有指定模式名称。在那里面 例如,触发器将假定该表在同一模式中。