首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >oracle设置公共同义词all表还是其他对象?

oracle设置公共同义词all表还是其他对象?
EN

Stack Overflow用户
提问于 2014-05-06 22:21:44
回答 2查看 1.3K关注 0票数 0

我有productionDB和testDB.ProductionDB,有tables.And的同义词,现在我想为testDB.How的所有表创建同义词,我可以创建所有的同义词。我可以得到这个查询的列表同义词

代码语言:javascript
复制
 select *
 from all_synonyms s
 join all_objects o
 on s.table_owner = o.owner
 and s.table_name = o.object_name
 where s.table_owner = 'XYZ'
EN

回答 2

Stack Overflow用户

发布于 2014-05-06 23:26:12

尝试执行以下查询:

代码语言:javascript
复制
SELECT CAST(dbms_metadata.get_ddl(object_type => 'SYNONYM',
                                  name        => a.synonym_name,
                                  SCHEMA      => a.owner) AS VARCHAR2(4000))
  FROM ALL_SYNONYMS a;

分享和享受。

票数 2
EN

Stack Overflow用户

发布于 2014-05-06 23:12:59

这是一个起始脚本-它将sql写为输出。运行它,先读取输出。当你认为最后一行是正确的时,取消它的注释-它必须以特权运行。

代码语言:javascript
复制
set pages 0
set feed off
set linesize 180
set trimspool on
spool syn.sql
select 'CREATE PUBLIC SYNONYM ' || SYNONYM_NAME | ' FOR ' ||
       TABLE_OWNER || '.' || TABLE_NAME || ';'
       from ALL_SYNONYMS
       where DB_LINK is NULL;
select 'CREATE PUBLIC SYNONYM ' || SYNONYM_NAME | ' FOR ' ||
       TABLE_OWNER || '.' || TABLE_NAME || '@' || DB_LINK || ';'
       from ALL_SYNONYMS
       where DB_LINK is NOT NULL;

spool off
--   uncomment after it has been tested 
--@syn.sql

如果testDB是使用PROD导出创建的,那么为什么所有同义词都丢失了?这里有些地方很不对劲。或者我错过了什么。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23497403

复制
相关文章

相似问题

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