我有一个问题,我需要从与某些表相关的数据库中删除所有代码和触发器,以便安装Solaris软件包.漫长复杂的故事,但我需要从一个干净的石板开始.
我已设法删除所有现有的表/同义词,但如何从sqlplus中找到相关的代码/触发器?
不幸的是,删除数据库并重新创建它是不可行的.
好吧,事实证明所有表名都以我的模块名称DAP为前缀.
因此,要使用sqlplus查找所有表名和公共同义词:
select table_name from all_tables where table_name like 'DAP%';
select synonym_name from all_synonyms where table_name like 'DAP%';
Run Code Online (Sandbox Code Playgroud)
获取触发器和序列的列表
select trigger_name from all_triggers where table_name like 'DAP%';
select sequence_name from all_sequences where sequence_name like 'DAP%';
Run Code Online (Sandbox Code Playgroud)
获取所有约束的列表
select table_name, constraint_name from all_constraints where table_name like 'DAP%';
Run Code Online (Sandbox Code Playgroud)
要获取与DAP相关的代码:
select text from dba_source where name like 'DAP%';
Run Code Online (Sandbox Code Playgroud)
我现在可以编写一个删除所有内容的脚本.