HINWEIS Bitte sehen Sie sich den UPDATE-Abschnitt für die richtige Antwort an.
Der Prozedurname darf in der Ansicht DBA_PROCEDURES nicht in Kleinbuchstaben geschrieben werden. Verwenden Sie Großbuchstaben oder wenden Sie die UPPER-Funktion an.
SELECT *
FROM SYS.DBA_PROCEDURES
WHERE procedure_name ='GG';
AKTUALISIEREN
Der einzige Fall, in dem Sie den Namen in Kleinbuchstaben schreiben können, ist, wenn Sie ihn beim Kompilieren in doppelte Anführungszeichen setzen.
Zum Beispiel
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>
Aber die obige Ansicht gibt immer noch kein Ergebnis für PROCEDURE_NAME zurück .
Grund
PROCEDURE_NAME Spalte enthält nur den Prozedurnamen für die Prozeduren, die Teil eines PACKAGE sind . Für EIGENSTÄNDIGE VERFAHREN Sie müssen OBJECT_NAME verwenden .
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>
Also, wie Sie sehen können, der procedure_name
hat nur die Prozedur des package's procedure
, jedoch das stand-alone procedure
wird nur unter object_name
aufgeführt .