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

DBA_PROCEDURES दृश्य में प्रक्रिया खोजने में असमर्थ

नोट कृपया सही उत्तर के लिए अद्यतन अनुभाग देखें।

DBA_PROCEDURES दृश्य में प्रक्रिया का नाम लोअर केस में नहीं हो सकता है। अपर केस का उपयोग करें, या UPPER फ़ंक्शन लागू करें।

SELECT *
  FROM SYS.DBA_PROCEDURES
 WHERE procedure_name ='GG';

अपडेट करें

एकमात्र मामला जब आपके पास लोअर केस में नाम हो सकता है यदि आप इसे संकलित करते समय दोहरे उद्धरण चिह्नों के भीतर संलग्न करते हैं।

उदाहरण के लिए,

SQL> CREATE OR REPLACE
  2  PROCEDURE "p"
  3  AS
  4  BEGIN
  5    NULL;
  6  END;
  7  /

Procedure created.

SQL> SELECT object_name, procedure_name, object_type FROM user_procedures where procedure_name='p';

no rows selected

SQL>

लेकिन फिर भी उपरोक्त दृश्य PROCEDURE_NAME . के लिए कोई परिणाम नहीं लौटाएगा ।

कारण

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

SQL> -- stand alone procedure in lower case
SQL> CREATE OR REPLACE
  2  PROCEDURE "p"
  3  AS
  4  BEGIN
  5    NULL;
  6  END;
  7  /

Procedure created.

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

Package created.

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

Package body created.

SQL>
SQL> SELECT object_name, procedure_name, object_type FROM user_procedures;

OBJECT_NAME     PROCEDURE_NAME  OBJECT_TYPE
--------------- --------------- ---------------
TEST_P          P               PACKAGE
p                               PROCEDURE
TEST_P                          PACKAGE

SQL>

तो, जैसा कि आप देख सकते हैं, procedure_name केवल package's procedure है , हालांकि stand-alone procedure केवल object_name . के अंतर्गत सूचीबद्ध है ।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. बाहरी प्रोग्राम का लॉगिंग आउटपुट (wx)python . के साथ

  2. एक पंक्ति में एकाधिक पंक्तियों को कैसे संयोजित करें, oracle

  3. तालिका कॉलम प्रारूप में ओरेकल कॉलम नाम लौटाएं?

  4. एक्सएमएल (ओरेकल) में नेमस्पेस का उपयोग करते समय एक्सएमएलटेबल द्वारा एक्सएमएल का विश्लेषण कैसे करें

  5. JDBC से Oracle ऑब्जेक्ट-ओरिएंटेड PL/SQL सदस्य प्रक्रियाओं को कॉल करें