在Oracle DB中查找对给定字符串的任何引用

时间:2016-04-19 08:03:01

标签: sql oracle oracle-sqldeveloper

我想从数据库中删除一个表,我知道它不会在我们的Java代码库中的任何地方使用。我也可以从我们的数据库中删除它,但我不确定这可能不会造成某种问题。也许它仍然可以从存储过程或类似的东西中引用?

或者数据库是否真的保证在任何情况下删除表时不会出现这种情况?如果它可能是一个问题,在db中搜索这个特定字符串的最佳方法是什么,以找到它的可能用法?

不幸的是,我没有dba访问此数据库。

由于

2 个答案:

答案 0 :(得分:1)

没有这样的保证

但是你可以运行它来查找存储过程,包或函数中对表的任何引用

select * from dba_source where lower(text) like '%<tablename>%'

答案 1 :(得分:0)

我认为你需要关心的表有两个参考。

  
      
  1. 依赖关系(在表浏览器中,sql navigator / toad有,不确定其他人)

  2.   
  3. 动态sql在procedure / function / package中调用该表。请参阅here

  4.   

但那些并非全部,因为一些动态sql可能会使用字符串连接

execute immediate 'select max(name) from customer_' || provinceCode into testName;