Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

ALL_PROCEDURES दृश्य PROCEDURE_NAME नहीं दिखाता

दस्तावेज़ीकरण से,

<ब्लॉकक्वॉट>

ALL_PROCEDURES संबद्ध गुणों के साथ सभी कार्यों और प्रक्रियाओं को सूचीबद्ध करता है। उदाहरण के लिए, ALL_PROCEDURES इंगित करता है कि कोई फ़ंक्शन पाइपलाइन किया गया है, समानांतर सक्षम है या एक समग्र फ़ंक्शन है। यदि कोई फ़ंक्शन पाइपलाइन या एक समग्र कार्य है, तो संबंधित कार्यान्वयन प्रकार (यदि कोई हो) की भी पहचान की जाती है।

यह स्पष्ट नहीं करता है कि क्या यह एक अकेले प्रक्रिया को सूचीबद्ध करेगा और एक पैकेज . में लिपटी एक प्रक्रिया उसी तरह या इसे अलग तरह से मानता है। चूंकि, procedure_name एक स्टैंड अलोन प्रक्रिया का नाम सूचीबद्ध नहीं करेगा जैसा कि ऊपर दिए गए प्रश्न में परीक्षण मामले में देखा गया है।

PROCEDURE_NAME कॉलम में केवल उन प्रक्रियाओं के लिए प्रक्रिया का नाम होगा जो PACKAGE . का हिस्सा हैं . स्टैंड अलोन प्रक्रियाओं के लिए आपको OBJECT_NAME . का उपयोग करना होगा ।

SQL> show user
USER is "LALIT"
SQL> CREATE OR REPLACE
  2  PROCEDURE new_proc
  3  AS
  4  BEGIN
  5    NULL;
  6  END;
  7  /

Procedure created.

SQL>
SQL> SELECT owner,
  2    object_name,
  3    procedure_name,
  4    object_type
  5  FROM all_procedures
  6  WHERE owner='LALIT'
  7  AND object_name='NEW_PROC';

OWNER OBJECT_NAME     PROCEDURE_NAME  OBJECT_TYPE
----- --------------- --------------- ---------------
LALIT NEW_PROC                        PROCEDURE

SQL>

आप प्रक्रिया_नाम का उपयोग करके प्रक्रियाओं की सूची केवल तभी प्राप्त कर सकते हैं जब इसे पैकेज में लपेटा गया हो।

SQL> -- package
SQL> CREATE OR REPLACE
  2  PACKAGE new_pack
  3  IS
  4    PROCEDURE new_proc;
  5  END new_pack;
  6  /

Package created.

SQL>
SQL> -- package body with a procedure
SQL> CREATE OR REPLACE
  2  PACKAGE BODY new_pack
  3  IS
  4  PROCEDURE new_proc
  5  IS
  6  BEGIN
  7    NULL;
  8  END;
  9  END new_pack;
 10  /

Package body created.

SQL> SELECT owner,
  2    object_name,
  3    procedure_name,
  4    object_type
  5  FROM all_procedures
  6  WHERE owner='LALIT'
  7  AND procedure_name='NEW_PROC';

OWNER OBJECT_NAME     PROCEDURE_NAME  OBJECT_TYPE
----- --------------- --------------- -----------
LALIT NEW_PACK        NEW_PROC        PACKAGE

SQL>

अब आप प्रक्रिया_नाम को वास्तविक प्रक्रिया के रूप में, और ऑब्जेक्ट_नाम को package_name के रूप में देख सकते हैं।

बेशक, ज्यादातर उत्पादन प्रणालियों में हमारे पास पैकेज होंगे, और अकेले प्रक्रियाएं नहीं होंगी। लेकिन, परीक्षण और डेमो के दौरान, हम अकेले प्रक्रियाओं को संकलित और चलाते हैं। इसलिए, यह जानना अच्छा है कि Oracle *_PROCEDURES विचारों में जानकारी को कैसे बनाए रखता है ।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle के साथ AWS पायथन लैम्ब्डा

  2. Oracle माइनस ऑपरेटर समझाया गया

  3. Oracle ऐप्स में FD_LOBS तालिका के बारे में आपको जो बातें अवश्य जाननी चाहिए

  4. एरलांग और इसकी हीप मेमोरी की खपत

  5. एक स्ट्रिंग में वर्णों और संख्याओं की गिनती ढूँढना