How to get list of all the procedure inside a package oracle

前端 未结 4 921
无人及你
无人及你 2020-12-10 00:41

Can I get the name of all the function inside a package. Suppose I have a package PKG_OWA and I want to list all the procedure inside the package.

相关标签:
4条回答
  • 2020-12-10 01:42

    The answer from APC is on the correct lines but the SQL given will only list the procedures owned by 'YOU' and is the same as selecting from USER_PROCEDURES but there could be packages in other schema

    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
    

    Also note that when you grant and revoke execute on a package, procedure or function, these show up in the DBA_TAB_PRIVS table (same table as insert/update/delete privileges on tables)

    Once you avhe the name of a packages such as the Oracle supplied DBMS ones ,you can also use DESC which will provide a list of the parameters and types expected e.g.

    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
    
    0 讨论(0)
  • 2020-12-10 01:43

    The data dictionary view ALL_PROCEDURES (or USER_PROCEDURES if you just want your packages). Find out more.

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

    This lists the public procedures exposed in the package specification. There is no easy way of retrieving the private procedures (that is, those specified only in the package body) except by processing the source text. Oracle do provide a utility PL/SCOPE which we can use to gather this information, but it requires us to change session settings and recompile our code, so it may not be suitable in all situations. Find out more.

    0 讨论(0)
  • 2020-12-10 01:43

    Maybe useful to someone, this is a way to find out procedure and function specified on package body only too.

    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
    
    0 讨论(0)
  • 2020-12-10 01:45

    I use this one:

    your package:

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

    your procedures (only from specs, i.e. global):

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

    and in/out arguments from procedure:

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

    enjoy!

    0 讨论(0)
提交回复
热议问题