2009-07-15 29 views
2

我有一个问题,我需要删除与某些表相关的数据库中的所有代码和触发器,以便安装Solaris软件包。长而复杂的故事,但我需要 开始一个干净的石板。如何查找与特定表相关的Oracle数据库中的所有代码和触发器?

我已经设法删除所有现有的表/同义词,但如何找到与sqlplus相关的代码/触发器?

不幸的是,删除数据库并重新创建它是不可行的。

回答

7

哦,原来所有的表名与我的模块名称前缀DAP。

因此,要找到所有的表名和公共同义词用sqlplus:

select table_name from all_tables where table_name like 'DAP%'; 
select synonym_name from all_synonyms where table_name like 'DAP%'; 

要获取触发器和序列

select trigger_name from all_triggers where table_name like 'DAP%'; 
select sequence_name from all_sequences where sequence_name like 'DAP%'; 

的列表要获得的所有约束

列表
select table_name, constraint_name from all_constraints where table_name like 'DAP%'; 

获取与DAP相关的代码:

select text from dba_source where name like 'DAP%'; 

我现在可以编写一个脚本来删除所有内容。

相关问题