我可以获取包内所有功能的名称吗? 假设我有一个包PKG_OWA,我想列出包内的所有过程。
答案 0 :(得分:39)
数据字典视图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 :(得分:7)
对某人有用,这也是一种找出包体上指定的过程和功能的方法。
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
答案 2 :(得分:4)
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
答案 3 :(得分:3)
我用这个:
你的包裹:
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'
过程中的和in / out参数:
select *
from ALL_ARGUMENTS
where owner = 'owner_name'
and package_name = 'package_name'
and object_name = 'procedure_name'
享受!