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. Как да преброим срещанията на разделител в низ, с изключение на тези в кавички

  2. Как да промените числото (7,2) на varchar в oracle?

  3. Имате таблица на Oracle, наречена като запазена дума, какви проблеми могат да възникнат?

  4. Oracle как да импортирате липсващи java класове при извикване на java от plsql

  5. Жаба за Oracle..Как да изпълним множество изрази?