Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Nie można znaleźć procedury w widoku DBA_PROCEDURES

UWAGA Proszę spojrzeć na sekcję AKTUALIZACJA, aby uzyskać poprawną odpowiedź.

Nazwa procedury nie może być pisana małymi literami w widoku DBA_PROCEDURES. Użyj wielkich liter lub zastosuj funkcję DUŻE.

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

AKTUALIZUJ

Jedynym przypadkiem, w którym nazwa może być pisana małymi literami, jest ujęcie jej w podwójnym cudzysłowie podczas kompilacji.

Na przykład

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>

Jednak powyższy widok nie zwróci żadnego wyniku dla PROCEDURE_NAME .

Powód

PROCEDURE_NAME kolumna będzie miała tylko nazwę procedury dla procedur, które są częścią PAKIETU . W przypadku PROCEDUR SAMODZIELNYCH musisz użyć 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>

Jak widać, procedure_name ma tylko package's procedure , jednak stand-alone procedure jest wymieniony tylko pod 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. org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter BŁĄD

  2. Jak ustawić limit czasu połączenia w groovy sql?

  3. Administrator ODBC nie może znaleźć pliku nazw Oracle TNS

  4. Jak radzić sobie z oszczędzaniem światła dziennego w bazie danych Oracle

  5. Jak używać Hibernate Session.doWork(...) dla punktów zapisu / transakcji zagnieżdżonych?