(Oracle) 如何获取程序包中的过程、函数列表?
(Oracle) How to get list of procedure, function in package?
RHEL5 上的 Oracle 11gR2
如何获取程序包中的过程、函数列表?
例如,有两个包。
PACKAGE pkg1
PROCEDURE pkg1_pro1 ~~
PROCEDURE pkg1_pro2 ~~
FUNCTION pkg1_func1 ~~
PACKAGE pkg2
PROCEDURE pkg2_pro1 ~~
FUNCTION pkg2_func1 ~~
FUNCTION pkg2_func2 ~~
然后,有RESULT。
SELECT blah, blah
FROM blah
WHERE package_name = 'PKG1'
Package_name Type Name
PKG1 PROCEDURE pkg1_pro1
PKG1 PROCEDURE pkg1_pro2
PKG1 FUNCTION pkg1_func1
怎么做?
SELECT OBJECT_NAME AS "Package_name",OBJECT_TYPE AS "TYPE",PROCEDURE_NAME as "Name"
FROM ALL_PROCEDURES
WHERE owner = 'Your Owner'
AND object_name = 'YOUR_PACKAGE';
编辑:
SELECT A.OBJECT_NAME AS "Package_name",
A.PROCEDURE_NAME AS "TYPE",
B.OBJECT_TYPE as "Name"
FROM ALL_PROCEDURES A,
ALL_OBJECTS B
WHERE A.OWNER='YOUR OWNER'
and A.OBJECT_NAME ='YOUR PACKAGE'
AND a.procedure_name=b.object_name;
下面的查询将提供包中存在的所有对象
SELECT D.PACKAGE_NAME,D.OBJECT_NAME,A.OBJECT_TYPE
FROM dba_arguments D
INNER JOIN
ALL_OBJECTS A
ON
A.OBJECT_NAME=D.OBJECT_NAME
AND A.owner=D.OWNER
WHERE
D.OWNER='OWNER_NAME' AND
D.PACKAGE_NAME='PACKAGE_NAME'
确保 owner_name 和 package_name 是大写字母。
RHEL5 上的 Oracle 11gR2
如何获取程序包中的过程、函数列表?
例如,有两个包。
PACKAGE pkg1 PROCEDURE pkg1_pro1 ~~ PROCEDURE pkg1_pro2 ~~ FUNCTION pkg1_func1 ~~ PACKAGE pkg2 PROCEDURE pkg2_pro1 ~~ FUNCTION pkg2_func1 ~~ FUNCTION pkg2_func2 ~~
然后,有RESULT。
SELECT blah, blah FROM blah WHERE package_name = 'PKG1' Package_name Type Name PKG1 PROCEDURE pkg1_pro1 PKG1 PROCEDURE pkg1_pro2 PKG1 FUNCTION pkg1_func1
怎么做?
SELECT OBJECT_NAME AS "Package_name",OBJECT_TYPE AS "TYPE",PROCEDURE_NAME as "Name"
FROM ALL_PROCEDURES
WHERE owner = 'Your Owner'
AND object_name = 'YOUR_PACKAGE';
编辑:
SELECT A.OBJECT_NAME AS "Package_name",
A.PROCEDURE_NAME AS "TYPE",
B.OBJECT_TYPE as "Name"
FROM ALL_PROCEDURES A,
ALL_OBJECTS B
WHERE A.OWNER='YOUR OWNER'
and A.OBJECT_NAME ='YOUR PACKAGE'
AND a.procedure_name=b.object_name;
下面的查询将提供包中存在的所有对象
SELECT D.PACKAGE_NAME,D.OBJECT_NAME,A.OBJECT_TYPE
FROM dba_arguments D
INNER JOIN
ALL_OBJECTS A
ON
A.OBJECT_NAME=D.OBJECT_NAME
AND A.owner=D.OWNER
WHERE
D.OWNER='OWNER_NAME' AND
D.PACKAGE_NAME='PACKAGE_NAME'
确保 owner_name 和 package_name 是大写字母。