Oracle 11gR2 RHEL 6.4
刚刚使用Data Pump将Oracle数据库用户(架构)导出到另一个用户 . 但是所有同义词仍然指向新模式中的旧(原始)用户 .
有没有人有一些代码(例如PL / SQL)可以运行来重命名新模式中的所有同义词,以便它们被拥有(指向)新模式?
以下可能需要一些调整,但你可以从一开始
DECLARE strSynonyms_owner VARCHAR2(4000) := 'SOME_USER'; strSynonyms_new_owner VARCHAR2(4000) := 'NEW_USER'; strCommand VARCHAR2(32767); BEGIN FOR aSynonym IN (SELECT * FROM ALL_SYNONYMS WHERE OWNER = strSynonyms_owner) LOOP strCommand := 'CREATE OR REPLACE SYNONYM ' || aSynonym.OWNER || '.' || aSynonym.SYNONYM_NAME || ' FOR ' || strSynonyms_new_owner || '.' || aSynonym.TABLE_NAME; EXECUTE IMMEDIATE strCommand; END LOOP; END;
没有在动物身上测试过 - 你会成为第一个!
分享和享受 .
1 回答
以下可能需要一些调整,但你可以从一开始
没有在动物身上测试过 - 你会成为第一个!
分享和享受 .