【问题标题】:Find references to specific column in Oracle in Jobs and Procedures在 Jobs and Procedures 中查找对 Oracle 中特定列的引用
【发布时间】:2012-05-23 17:19:57
【问题描述】:

我正在寻找一个查询,允许我查询 oracle 数据库中的所有表、视图、JOBSPROCEDURES。我找到了一些适用于表和视图的查询链接,但我需要 jobsprocedures。如果一个查询不能用于所有这些,我至少需要工作和程序。

这是我找到的表格和视图:

Select TABLE_NAME, COLUMN_NAME from user_tab_columns

TIA

【问题讨论】:

  • 什么样的工作?通过DBMS_JOB 安排的工作?还是DBMS_SCHEDULER?如果您的意思是DBMS_SCHEDULER,您真的是指工作而不是流程、链条等吗?对于程序,您只需要独立程序吗?或者在包中包含公共程序?您是否也尝试在包中获取私有程序?你想要函数还是只想要过程?
  • @JustinCave 基本上,我需要找到对特定列的任何引用。将审查每次出现的情况以确定是否需要更新参考/使用。这有助于缩小范围吗?
  • 作业如何引用列?这项工作会调用一个引用列的过程吗?你只想要手续吗?或者任何可以引用特定列的代码?
  • @JustinCave - 关于工作的好问题 - 我只是被要求将工作包括在搜索中。我的猜测是作业可能会调用查询,并且查询可能包含有问题的列名。

标签: oracle


【解决方案1】:

我的猜测是你想要类似的东西

SELECT name, type, line, text
  FROM user_source
 WHERE lower(text) like lower('%<<column name>>%');

这将显示包含列名的任何 pL/SQL 对象(包、包主体、过程、函数、触发器、类型等)中的任何代码行。如果有多个具有相同名称列的表(即在许多不同的表中找到列name),则将识别所有实例。除了检查代码之外,没有一个真正好的方法来确定哪些查询引用了一个特定表中的name 列。您可能会查看USER_SOURCE 中的NAMETYPE 是否出现在DBA_DEPENDENCIES 中作为引用您感兴趣的特定表。但这只是向您显示对象级别的表级别依赖关系以及您的对象可能依赖于大量不同的表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-14
    • 1970-01-01
    • 1970-01-01
    • 2021-07-16
    • 2023-01-03
    • 2011-07-04
    相关资源
    最近更新 更多