【问题标题】:question about pl/sql stored program text关于pl/sql存储程序文本的问题
【发布时间】:2010-12-17 19:06:57
【问题描述】:

我使用 TOAD 进行 PL/SQL 开发。在 TOAD 中,当我键入过程名称并按 f4 时,我可以看到该过程的源代码。我认为 TOAD 从 v$sqltext 视图中获取源代码。为了证实我的想法,我写了一个查询:

select * from v$sqltext

但是当我执行上面的查询时,Oracle 给我一个错误:

ORA-00942: 表或视图没有 存在 00942. 00000 - “表或视图不存在” *原因:
*操作:行错误:29 列:15

所以我认为 TOAD 从其他地方而不是 v$sqltext 视图获取过程的源代码。任何人都可以告诉我这件事吗?非常感谢。

【问题讨论】:

    标签: oracle stored-procedures plsql toad ora-00942


    【解决方案1】:

    存储过程的完整查询(不在包中):

    select text
    from   all_source
    where  owner = 'MYSCHEMA'
    and    type = 'PROCEDURE'
    and    name = 'MY_PROCEDURE'
    order by line;
    

    如果您以 MYSCHEMA 用户身份连接,则可以使用 USER_SOURCE:

    select text
    from   user_source
    where  type = 'PROCEDURE'
    and    name = 'MY_PROCEDURE'
    order by line;
    

    TYPE 的其他值是:

    • 正文
    • 功能
    • 触发
    • 类型
    • JAVA 源代码
    • 包体
    • 包

    【讨论】:

      【解决方案2】:

      select * from all_source

      请参阅 ALL_SOURCE 和 V$SQLTEXT 的数据库参考。

      【讨论】:

        【解决方案3】:

        如果您在 DBA* 表上选择了 priv,请查看 select * from dba_source。此表将包含完整的源代码。

        【讨论】:

          猜你喜欢
          • 2023-03-31
          • 2010-12-17
          • 1970-01-01
          • 2020-10-08
          • 2019-04-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-04-11
          相关资源
          最近更新 更多