我有productionDB和testDB.ProductionDB,有tables.And的同义词,现在我想为testDB.How的所有表创建同义词,我可以创建所有的同义词。我可以得到这个查询的列表同义词
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'发布于 2014-05-06 23:26:12
尝试执行以下查询:
SELECT CAST(dbms_metadata.get_ddl(object_type => 'SYNONYM',
name => a.synonym_name,
SCHEMA => a.owner) AS VARCHAR2(4000))
FROM ALL_SYNONYMS a;分享和享受。
发布于 2014-05-06 23:12:59
这是一个起始脚本-它将sql写为输出。运行它,先读取输出。当你认为最后一行是正确的时,取消它的注释-它必须以特权运行。
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导出创建的,那么为什么所有同义词都丢失了?这里有些地方很不对劲。或者我错过了什么。
https://stackoverflow.com/questions/23497403
复制相似问题