Oracle 11gR2 RHEL 6.4
只需使用数据泵将Oracle数据库用户(模式)导出到另一个用户。但是所有的同义词仍然指向新模式中的旧(原始)用户。
是否有人可以运行一些代码(例如PL/SQL)来重命名新模式中的所有同义词,以便它们被拥有(指向)新模式?
发布于 2014-03-09 00:04:21
下面的内容可能需要一些调整,但您可以先从
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;没有在动物身上进行测试-你将是第一个!
分享并享受。
https://stackoverflow.com/questions/22276005
复制相似问题