नोट कृपया सही उत्तर के लिए अद्यतन अनुभाग देखें।
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
. के अंतर्गत सूचीबद्ध है ।