gpt4 book ai didi

oracle - Oracle 中存储过程的 object_id 存储在哪里?

转载 作者:行者123 更新时间:2023-12-04 04:57:13 26 4
gpt4 key购买 nike

我是 PL/SQL 的初学者,所以我不知道这个问题是否有意义。我试图在 Oracle 11g 中的包下(不是在架构下)找出存储过程的 object_id。我试图查询以下我认为应该包含 SP 的 object_Id 的系统表/ View 。

  • All_procedures
  • User_obects

  • All_procedures View 确实包含我要查找的 SP 的名称,但它仅包含包的对象 ID。我想在包下找到存储过程的 object_id 的原因是:
  • 与我交谈过的一些 PL/SQL 程序员告诉我,包下的 SP/函数不被视为对象。我想明白为什么。
  • 我想知道在同一包下有多少个其他 SP 中提到了这个 SP。我希望 public_dependency View 包含这个映射,除非有人告诉我这是错误的 View 。
  • 如果 SP/Functions 未标识为包下的 Objects,那么我如何获取引用特定 SP 的 SP 列表?

  • 我在 Stackoverflow 中发布了另一个问题,这让我找到了链接 How do you programatically identify a stored procedure's dependencies? .但是这篇文章中提到的脚本对我没有帮助,因为 user_objects 没有包下存储过程的任何条目。它在 Schema 下只有 SP。

    最佳答案

    Some of the PL/SQL programmers I talked to tells me that the SPs/Functions under a package are not considered an object. I want to understand why.



    oracle 数据库中的包是模式单元,将逻辑相关的对象(如类型、变量、过程和函数)分组。它们被视为原子单元,如果一个包中的某个过程引用另一个包中的另一个过程,我们就会遇到第一个包本身引用第二个包的情况。所以,这里的最小对象是包本身,而不是过程或类型或包中的其他东西。

    I want to find out, in how many other SPs under the same package does this SP get referred. I hope public_dependency view contains this mapping, unless someone tells me this is the wrong view.



    我从来没有遇到过如何获得它的信息。如果引用在包内,我认为包是独立的对象。

    If SPs/Functions are not identified as Objects under a package, then how do I get the list of SPs that refers to a specific SP.?



    您需要使用包含源代码的 View ,例如 user_source/all_source/dba_source

    关于oracle - Oracle 中存储过程的 object_id 存储在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16601280/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com