首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有人使用Oracle PL/SQL代码将所有同义词重命名为另一个模式?

是否有人使用Oracle PL/SQL代码将所有同义词重命名为另一个模式?
EN

Stack Overflow用户
提问于 2014-03-08 22:41:55
回答 1查看 258关注 0票数 0

Oracle 11gR2 RHEL 6.4

只需使用数据泵将Oracle数据库用户(模式)导出到另一个用户。但是所有的同义词仍然指向新模式中的旧(原始)用户。

是否有人可以运行一些代码(例如PL/SQL)来重命名新模式中的所有同义词,以便它们被拥有(指向)新模式?

EN

回答 1

Stack Overflow用户

发布于 2014-03-09 00:04:21

下面的内容可能需要一些调整,但您可以先从

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22276005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档