oracle 如何获取包oracle中所有程序的列表
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/8654155/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to get list of all the procedure inside a package oracle
提问by ????
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.
我可以获取包中所有函数的名称吗?假设我有一个包 PKG_OWA 并且我想列出包中的所有过程。
回答by APC
The data dictionary view ALL_PROCEDURES (or USER_PROCEDURES if you just want your packages). Find out more.
数据字典视图 ALL_PROCEDURES(或者 USER_PROCEDURES,如果你只想要你的包)。 了解更多。
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.
这列出了包规范中公开的公共过程。除了处理源文本之外,没有简单的方法可以检索私有过程(即,仅在包体中指定的过程)。Oracle 确实提供了一个实用程序 PL/SCOPE,我们可以使用它来收集这些信息,但是它需要我们更改会话设置并重新编译我们的代码,因此它可能不适用于所有情况。了解更多。
回答by GorillaFrancescano
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
回答by Trevor North
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
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
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)
另请注意,当您授予和撤销对包、过程或函数的执行时,这些会显示在 DBA_TAB_PRIVS 表中(与表上的插入/更新/删除权限相同的表)
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.
一旦您获得了诸如 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
回答by Andrey Khmelev
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!
请享用!