Oracle
 sql >> база данни >  >> RDS >> Oracle

Как можете да разберете дали се използва PL/SQL пакет, процедура или функция?

Можете също да опитате да направите заявка USER/ALL_source:

SELECT * FROM all_source
where UPPER(TEXT) like UPPER('%procedure_name%')

или

SELECT * FROM all_source
where UPPER(TEXT) like UPPER('%package.function_name%')

Ще трябва да игнорирате самореференции, но това трябва да бъде лесно да се забележи.

Ще трябва също да проверите източника на „view“ от user/all_views. Все пак вижте другия въпрос относно заявката за източник на изглед.

можете също да проверите дали пакет или функция/процедура от най-високо ниво се използва с

select * from all_dependencies
where referenced_name like '%PACKAGE_NAME%';

NB:превключете user_ с all_/dba_ според нуждите

ако търсите специално неизвиквани функции, тогава друга опция е да компилирате кода си с включени ПРЕДУПРЕЖДЕНИЯ и след това да потърсите PLW-06002 и LPW-06006

exec DBMS_WARNING.add_warning_setting_cat('ALL','ENABLE','SESSION')
create or replace function x return number
as
procedure y is begin null; end;
begin
return 0;
return 1;
end;

show errors

Errors for FUNCTION X:

LINE/COL ERROR
-------- -----------------------------------------------------------------
1/1      PLW-05018: unit X omitted optional AUTHID clause; default value DEFINER used
3/1      PLW-06006: uncalled procedure "Y" is removed.
6/1      PLW-06002: Unreachable code


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. oracle 12c - изберете низ след последното появяване на символ

  2. Защо не мога да използвам променливи за свързване в DDL/SCL изрази в динамичен SQL?

  3. Обратно проектиране на модел на данни с помощта на Oracle SQL Developer

  4. Поглед към грешката на Oracle Group-by

  5. Инструкции стъпка по стъпка за инсталиране на Oracle Virtual Box