Oracle10g 如何从oracle数据库中找到与特定表相关的所有代码、触发器?

Oracle10g 如何从oracle数据库中找到与特定表相关的所有代码、触发器?,oracle10g,Oracle10g,我有一个问题,需要从数据库中删除与某些表相关的所有代码和触发器,以便安装Solaris软件包。很长很复杂的故事,但我需要 从头开始 我已经设法删除了所有现有的表/同义词,但是如何从sqlplus中找到相关的代码/触发器呢 不幸的是,删除数据库并重新创建它是不可行的。您应该能够查询系统表ALL_触发器以找到触发器。它有一个表名列。您可能会找到具有不同系统表的其他相关对象(自从我与Oracle发生冲突以来已经有一段时间了) 事实证明,所有表名的前缀都是我的模块名DAP 因此,要查找所有表名和sqlp

我有一个问题,需要从数据库中删除与某些表相关的所有代码和触发器,以便安装Solaris软件包。很长很复杂的故事,但我需要 从头开始

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


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

您应该能够查询系统表ALL_触发器以找到触发器。它有一个表名列。您可能会找到具有不同系统表的其他相关对象(自从我与Oracle发生冲突以来已经有一段时间了)


事实证明,所有表名的前缀都是我的模块名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%';
我现在可以写一个脚本,删除所有内容