代码之家  ›  专栏  ›  技术社区  ›  Michal Drozd

如何在ORACLE中显示包中的函数代码?

  •  3
  • Michal Drozd  · 技术社区  · 14 年前

    从软件包中显示函数FUNCTION1的最佳方式是什么?

    DESC PACK.FUNCTION1 不起作用

    3 回复  |  直到 9 年前
        1
  •  14
  •   Kirill Leontev    14 年前

    你说“展示”是什么意思? 可以通过以下方式查看包体实现:

    select text 
      from all_source a 
     where a.type = 'PACKAGE BODY' 
       and a.name = 'YOUR_PACKAGE' 
     order by line asc
    

    尽管你不能用这种方法从包中只提取某个函数。通过设置 a.type = 'FUNCTION' .

        2
  •  1
  •   JulesLt    14 年前

    好吧,最好的方法可能是使用SQLDeveloper(或TOAD)之类的东西,它有一个模式浏览器、语法高亮显示等,或者将源代码提取到文本文件中,您可以将其放入您喜爱的编辑器中。

    这两个选项都优于在USER\u source中查询和重新格式化源代码以查找函数规范。

    甲骨文扮演的角色相当差劲组件功能1以前在oracle7上工作,但是他们把它改成了DESC-PACK。

        3
  •  0
  •   Michael Pakhantsov    14 年前

    可能是FUNCTION1是否存在于软件包中??因为它有效。

      SQL> desc dbms_output.put_line
       Parameter Type     Mode Default? 
       --------- -------- ---- -------- 
       A         VARCHAR2 IN            
    

    SQL>desc dbms\u random;

      Element    Type      
      ---------- --------- 
      SEED       PROCEDURE 
      VALUE      FUNCTION  
      NORMAL     FUNCTION  
      STRING     FUNCTION  
      INITIALIZE PROCEDURE 
      RANDOM     FUNCTION  
      TERMINATE  PROCEDURE 
      NUM_ARRAY  TYPE      
    

    SQL>描述dbms_随机值

      Parameter Type   Mode Default? 
      --------- ------ ---- -------- 
      (RESULT)  NUMBER               
      (RESULT)  NUMBER               
      LOW       NUMBER IN            
      HIGH      NUMBER IN