首页 文章

如何获取包oracle内部所有过程的列表

提问于
浏览
18

我可以获取包中所有函数的名称吗?假设我有一个包PKG_OWA,我想列出包内的所有程序 .

4 回答

  • 35

    数据字典视图ALL_PROCEDURES(如果您只是想要包,则为USER_PROCEDURES) . Find out more.

    select procedure_name
     from all_procedures
     where owner = 'YOU'
     and object_name = 'YOUR_PACKAGE'
    

    这列出了包规范中公开的公共过程 . 除了处理源文本之外,没有简单的方法来检索私有过程(即仅在包体中指定的过程) . Oracle确实提供了一个实用程序PL / SCOPE,我们可以使用它来收集这些信息,但它要求我们更改会话设置并重新编译我们的代码,因此它可能并不适合所有情况 . Find out more .

  • 1

    也许对某人有用,这也是一种查找包体上指定的过程和函数的方法 .

    select name, 
           type,
           decode(usage,'DECLARATION', 'body only', 'DEFINITION', 'spec and body', usage) defined_on,
           line body_line
      from user_identifiers ui
      where type in ('PROCEDURE', 'FUNCTION')
      and usage_context_id = (select usage_id
        from user_identifiers
          where object_name = ui.object_name
            and object_type = ui.object_type
            and usage_context_id = 0)
      and object_name = 'your package name'
      and object_type = 'PACKAGE BODY'
      order by name
    
  • 7

    APC的答案是在正确的行上,但给出的SQL只列出'你'所拥有的程序,与从USER_PROCEDURES中选择的程序相同,但在其他模式中可能有包

    SQL> select * from all_procedures where owner='TEST';
    
    OWNER                          OBJECT_NAME
    ------------------------------ ------------------------------
    PROCEDURE_NAME                 AGG PIP IMPLTYPEOWNER
    ------------------------------ --- --- ------------------------------
    IMPLTYPENAME                   PAR INT DET AUTHID
    ------------------------------ --- --- --- ------------
    TEST                           TEST
                                   NO  NO
                                   NO  NO  NO  DEFINER
    
    SQL> select * from user_procedures;
    
    OBJECT_NAME                    PROCEDURE_NAME                 AGG PIP
    ------------------------------ ------------------------------ --- ---
    IMPLTYPEOWNER                  IMPLTYPENAME                   PAR INT DET
     ------------------------------ ------------------------------ --- --- ---
    AUTHID
    ------------
    TEST                                                          NO  NO
                                                              NO  NO  NO
    

    另请注意,当您对包,过程或函数授予和撤消执行时,这些会显示在DBA_TAB_PRIVS表中(与表上的插入/更新/删除权限相同)

    一旦您获得了诸如Oracle提供的DBMS之类的软件包的名称,您还可以使用DESC,它将提供所需参数和类型的列表,例如:

    SQL> desc dbms_lob
    PROCEDURE APPEND
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     DEST_LOB                       BLOB                    IN/OUT
     SRC_LOB                        BLOB                    IN
    PROCEDURE APPEND
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     DEST_LOB                       CLOB                    IN/OUT
     SRC_LOB                        CLOB                    IN
    PROCEDURE CLOSE
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        BLOB                    IN/OUT
    PROCEDURE CLOSE
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        CLOB                    IN/OUT
    PROCEDURE CLOSE
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     FILE_LOC                       BINARY FILE LOB         IN/OUT
    FUNCTION COMPARE RETURNS NUMBER(38)
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_1                          BLOB                    IN
     LOB_2                          BLOB                    IN
     AMOUNT                         NUMBER(38)              IN     DEFAULT
     OFFSET_1                       NUMBER(38)              IN     DEFAULT
     OFFSET_2                       NUMBER(38)              IN     DEFAULT
    FUNCTION COMPARE RETURNS NUMBER(38)
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_1                          CLOB                    IN
     LOB_2                          CLOB                    IN
     AMOUNT                         NUMBER(38)              IN     DEFAULT
     OFFSET_1                       NUMBER(38)              IN     DEFAULT
     OFFSET_2                       NUMBER(38)              IN     DEFAULT
    FUNCTION COMPARE RETURNS NUMBER(38)
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     FILE_1                         BINARY FILE LOB         IN
     FILE_2                         BINARY FILE LOB         IN
     AMOUNT                         NUMBER(38)              IN
     OFFSET_1                       NUMBER(38)              IN     DEFAULT
     OFFSET_2                       NUMBER(38)              IN     DEFAULT
    PROCEDURE CONVERTTOBLOB
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     DEST_LOB                       BLOB                    IN/OUT
     SRC_CLOB                       CLOB                    IN
     AMOUNT                         NUMBER(38)              IN
     DEST_OFFSET                    NUMBER(38)              IN/OUT
     SRC_OFFSET                     NUMBER(38)              IN/OUT
     BLOB_CSID                      NUMBER                  IN
     LANG_CONTEXT                   NUMBER(38)              IN/OUT
     WARNING                        NUMBER(38)              OUT
    PROCEDURE CONVERTTOCLOB
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     DEST_LOB                       CLOB                    IN/OUT
     SRC_BLOB                       BLOB                    IN
     AMOUNT                         NUMBER(38)              IN
     DEST_OFFSET                    NUMBER(38)              IN/OUT
     SRC_OFFSET                     NUMBER(38)              IN/OUT
     BLOB_CSID                      NUMBER                  IN
     LANG_CONTEXT                   NUMBER(38)              IN/OUT
     WARNING                        NUMBER(38)              OUT
    PROCEDURE COPY
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     DEST_LOB                       BLOB                    IN/OUT
     SRC_LOB                        BLOB                    IN
     AMOUNT                         NUMBER(38)              IN
     DEST_OFFSET                    NUMBER(38)              IN     DEFAULT
     SRC_OFFSET                     NUMBER(38)              IN     DEFAULT
    PROCEDURE COPY
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     DEST_LOB                       CLOB                    IN/OUT
     SRC_LOB                        CLOB                    IN
     AMOUNT                         NUMBER(38)              IN
     DEST_OFFSET                    NUMBER(38)              IN     DEFAULT
     SRC_OFFSET                     NUMBER(38)              IN     DEFAULT
    PROCEDURE CREATETEMPORARY
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        BLOB                    IN/OUT
     CACHE                          BOOLEAN                 IN
     DUR                            BINARY_INTEGER          IN     DEFAULT
    PROCEDURE CREATETEMPORARY
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        CLOB                    IN/OUT
     CACHE                          BOOLEAN                 IN
     DUR                            BINARY_INTEGER          IN     DEFAULT
    PROCEDURE ERASE
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        BLOB                    IN/OUT
     AMOUNT                         NUMBER(38)              IN/OUT
     OFFSET                         NUMBER(38)              IN     DEFAULT
    PROCEDURE ERASE
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        CLOB                    IN/OUT
     AMOUNT                         NUMBER(38)              IN/OUT
     OFFSET                         NUMBER(38)              IN     DEFAULT
    PROCEDURE FILECLOSE
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     FILE_LOC                       BINARY FILE LOB         IN/OUT
    PROCEDURE FILECLOSEALL
    FUNCTION FILEEXISTS RETURNS NUMBER(38)
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     FILE_LOC                       BINARY FILE LOB         IN
    PROCEDURE FILEGETNAME
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     FILE_LOC                       BINARY FILE LOB         IN
     DIR_ALIAS                      VARCHAR2                OUT
     FILENAME                       VARCHAR2                OUT
    FUNCTION FILEISOPEN RETURNS NUMBER(38)
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     FILE_LOC                       BINARY FILE LOB         IN
    PROCEDURE FILEOPEN
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     FILE_LOC                       BINARY FILE LOB         IN/OUT
     OPEN_MODE                      BINARY_INTEGER          IN     DEFAULT
    PROCEDURE FREETEMPORARY
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        BLOB                    IN/OUT
    PROCEDURE FREETEMPORARY
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        CLOB                    IN/OUT
    FUNCTION GETCHUNKSIZE RETURNS NUMBER(38)
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        BLOB                    IN
    FUNCTION GETCHUNKSIZE RETURNS NUMBER(38)
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        CLOB                    IN
    FUNCTION GETLENGTH RETURNS NUMBER(38)
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        BLOB                    IN
    FUNCTION GETLENGTH RETURNS NUMBER(38)
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        CLOB                    IN
    FUNCTION GETLENGTH RETURNS NUMBER(38)
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     FILE_LOC                       BINARY FILE LOB         IN
    FUNCTION GET_STORAGE_LIMIT RETURNS NUMBER(38)
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        CLOB                    IN
    FUNCTION GET_STORAGE_LIMIT RETURNS NUMBER(38)
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        BLOB                    IN
    FUNCTION INSTR RETURNS NUMBER(38)
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        BLOB                    IN
     PATTERN                        RAW                     IN
     OFFSET                         NUMBER(38)              IN     DEFAULT
     NTH                            NUMBER(38)              IN     DEFAULT
    FUNCTION INSTR RETURNS NUMBER(38)
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        CLOB                    IN
     PATTERN                        VARCHAR2                IN
     OFFSET                         NUMBER(38)              IN     DEFAULT
     NTH                            NUMBER(38)              IN     DEFAULT
    FUNCTION INSTR RETURNS NUMBER(38)
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     FILE_LOC                       BINARY FILE LOB         IN
     PATTERN                        RAW                     IN
     OFFSET                         NUMBER(38)              IN     DEFAULT
     NTH                            NUMBER(38)              IN     DEFAULT
    FUNCTION ISOPEN RETURNS NUMBER(38)
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        BLOB                    IN
    FUNCTION ISOPEN RETURNS NUMBER(38)
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        CLOB                    IN
    FUNCTION ISOPEN RETURNS NUMBER(38)
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     FILE_LOC                       BINARY FILE LOB         IN
    FUNCTION ISTEMPORARY RETURNS NUMBER(38)
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        BLOB                    IN
    FUNCTION ISTEMPORARY RETURNS NUMBER(38)
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        CLOB                    IN
    PROCEDURE LOADBLOBFROMFILE
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     DEST_LOB                       BLOB                    IN/OUT
     SRC_BFILE                      BINARY FILE LOB         IN
     AMOUNT                         NUMBER(38)              IN
     DEST_OFFSET                    NUMBER(38)              IN/OUT
     SRC_OFFSET                     NUMBER(38)              IN/OUT
    PROCEDURE LOADCLOBFROMFILE
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     DEST_LOB                       CLOB                    IN/OUT
     SRC_BFILE                      BINARY FILE LOB         IN
     AMOUNT                         NUMBER(38)              IN
     DEST_OFFSET                    NUMBER(38)              IN/OUT
     SRC_OFFSET                     NUMBER(38)              IN/OUT
     BFILE_CSID                     NUMBER                  IN
     LANG_CONTEXT                   NUMBER(38)              IN/OUT
     WARNING                        NUMBER(38)              OUT
    PROCEDURE LOADFROMFILE
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     DEST_LOB                       BLOB                    IN/OUT
     SRC_LOB                        BINARY FILE LOB         IN
     AMOUNT                         NUMBER(38)              IN
     DEST_OFFSET                    NUMBER(38)              IN     DEFAULT
     SRC_OFFSET                     NUMBER(38)              IN     DEFAULT
    PROCEDURE LOADFROMFILE
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     DEST_LOB                       CLOB                    IN/OUT
     SRC_LOB                        BINARY FILE LOB         IN
     AMOUNT                         NUMBER(38)              IN
     DEST_OFFSET                    NUMBER(38)              IN     DEFAULT
     SRC_OFFSET                     NUMBER(38)              IN     DEFAULT
    PROCEDURE OPEN
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        BLOB                    IN/OUT
     OPEN_MODE                      BINARY_INTEGER          IN
    PROCEDURE OPEN
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        CLOB                    IN/OUT
     OPEN_MODE                      BINARY_INTEGER          IN
    PROCEDURE OPEN
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     FILE_LOC                       BINARY FILE LOB         IN/OUT
     OPEN_MODE                      BINARY_INTEGER          IN     DEFAULT
    PROCEDURE READ
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        BLOB                    IN
     AMOUNT                         NUMBER(38)              IN/OUT
     OFFSET                         NUMBER(38)              IN
     BUFFER                         RAW                     OUT
    PROCEDURE READ
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        CLOB                    IN
     AMOUNT                         NUMBER(38)              IN/OUT
     OFFSET                         NUMBER(38)              IN
     BUFFER                         VARCHAR2                OUT
    PROCEDURE READ
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     FILE_LOC                       BINARY FILE LOB         IN
     AMOUNT                         NUMBER(38)              IN/OUT
     OFFSET                         NUMBER(38)              IN
     BUFFER                         RAW                     OUT
    FUNCTION SUBSTR RETURNS RAW
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        BLOB                    IN
     AMOUNT                         NUMBER(38)              IN     DEFAULT
     OFFSET                         NUMBER(38)              IN     DEFAULT
    FUNCTION SUBSTR RETURNS VARCHAR2
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        CLOB                    IN
     AMOUNT                         NUMBER(38)              IN     DEFAULT
     OFFSET                         NUMBER(38)              IN     DEFAULT
    FUNCTION SUBSTR RETURNS RAW
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     FILE_LOC                       BINARY FILE LOB         IN
     AMOUNT                         NUMBER(38)              IN     DEFAULT
     OFFSET                         NUMBER(38)              IN     DEFAULT
    PROCEDURE TRIM
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        BLOB                    IN/OUT
     NEWLEN                         NUMBER(38)              IN
    PROCEDURE TRIM
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        CLOB                    IN/OUT
     NEWLEN                         NUMBER(38)              IN
    PROCEDURE WRITE
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        BLOB                    IN/OUT
     AMOUNT                         NUMBER(38)              IN
     OFFSET                         NUMBER(38)              IN
     BUFFER                         RAW                     IN
    PROCEDURE WRITE
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        CLOB                    IN/OUT
     AMOUNT                         NUMBER(38)              IN
     OFFSET                         NUMBER(38)              IN
     BUFFER                         VARCHAR2                IN
    PROCEDURE WRITEAPPEND
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        BLOB                    IN/OUT
     AMOUNT                         NUMBER(38)              IN
     BUFFER                         RAW                     IN
    PROCEDURE WRITEAPPEND
     Argument Name                  Type                    In/Out Default?
     ------------------------------ ----------------------- ------ --------
     LOB_LOC                        CLOB                    IN/OUT
     AMOUNT                         NUMBER(38)              IN
     BUFFER                         VARCHAR2                IN
    
  • 4

    我用这个:

    你的包裹:

    SELECT *
    FROM ALL_OBJECTS
    WHERE OBJECT_TYPE = 'PACKAGE' 
        and owner = 'owner_name'
        and object_name = 'package_name'
    

    你的程序(仅来自规格,即全球):

    select *
     from all_procedures
     where owner = 'owner_name'
     and object_name = 'package_name'
    

    和来自程序的输入/输出参数:

    select * 
    from ALL_ARGUMENTS 
    where owner = 'owner_name'
        and package_name = 'package_name'
        and object_name = 'procedure_name'
    

    请享用!

相关问题