2011-12-28 5 views
17

क्या मुझे पैकेज के अंदर सभी फ़ंक्शन का नाम मिल सकता है। मान लीजिए मेरे पास पैकेज PKG_OWA है और मैं पैकेज के अंदर सभी प्रक्रियाओं को सूचीबद्ध करना चाहता हूं।पैकेज ऑरैकल के अंदर सभी प्रक्रियाओं की सूची कैसे प्राप्त करें

+0

पैकेज बॉडी के अंदर या विनिर्देशन में? –

+0

मुझे केवल शरीर की सूची चाहिए। –

उत्तर

33

डेटा डिक्शनरी ALL_PROCEDURES (या USER_PROCEDURES यदि आप बस अपने पैकेज चाहते हैं) देखें। Find out more.

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

यह सार्वजनिक पैकेज विनिर्देश में उजागर प्रक्रियाओं सूचीबद्ध करता है। स्रोत पाठ को संसाधित करने के अलावा निजी प्रक्रियाओं को पुनर्प्राप्त करने का कोई आसान तरीका नहीं है (यानी, केवल पैकेज निकाय में निर्दिष्ट)। ओरेकल एक उपयोगिता पीएल/एससीओपीई प्रदान करता है जिसे हम इस जानकारी को इकट्ठा करने के लिए उपयोग कर सकते हैं, लेकिन इसके लिए हमें सत्र सेटिंग्स बदलने और हमारे कोड को फिर से सम्मिलित करने की आवश्यकता होती है, इसलिए यह सभी स्थितियों में उपयुक्त नहीं हो सकता है। Find out more

4

एपीसी से जवाब सही तर्ज पर है, लेकिन एसक्यूएल और केवल 'आप' के स्वामित्व प्रक्रियाओं सूची जाएगा दिया 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 तालिका में दिखाई देते हैं (सारणी पर विशेषाधिकार/सम्मिलित/हटाएं जैसे तालिका)

एक बार जब आप किसी पैकेज का नाम लेते हैं चूंकि ओरेकल ने डीबीएमएस की आपूर्ति की, आप डीईएससी का भी उपयोग कर सकते हैं जो अपेक्षित पैरामीटर और प्रकारों की एक सूची प्रदान करेगा। .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 
6

शायद किसी के लिए उपयोगी है, यह केवल पैकेज निकाय पर निर्दिष्ट प्रक्रिया और कार्य को खोजने का एक तरीका है।

अपने पैकेज:

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 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

यह सही जवाब है! 12 सी पर ठीक से परीक्षण किया गया लेकिन दृश्य USER_IDENTIFIERS कम से कम 11 जी के बाद मौजूद है। –

+0

डिफ़ॉल्ट रूप से यह दृश्य खाली है। यह पीएल/एससीओपीई द्वारा आबादी है, जिसके लिए हमें विशेष सेटिंग्स के साथ हमारे कोड को पुन: संकलित करने की आवश्यकता है। [और जानें] (https://stackoverflow.com/q/44026333/146325) – APC

0

मैं इस एक का उपयोग करें प्रक्रिया:

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

आनंद लें!

संबंधित मुद्दे