Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana Anda bisa tahu jika Paket, Prosedur, atau Fungsi PL/SQL sedang digunakan?

Anda juga dapat mencoba menanyakan USER/ALL_source:

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

atau

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

Anda harus mengabaikan referensi diri, tetapi itu harus mudah dikenali.

Anda juga harus memeriksa sumber "tampilan" dari pengguna/all_views. Lihat pertanyaan lain tentang menanyakan sumber tampilan.

Anda juga dapat memeriksa apakah paket atau fungsi/prosedur tingkat atas digunakan dengan

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

NB:ganti user_ dengan all_/dba_ sesuai kebutuhan

jika Anda secara khusus mencari fungsi yang tidak dipanggil maka opsi lain adalah mengkompilasi kode Anda dengan PERINGATAN dihidupkan dan kemudian mencari PLW-06002 dan 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. Cara Menghitung Perbedaan Antara Dua Tanggal di PostgreSQL/Oracle

  2. Perlu mengatur nama karyawan sesuai kolom kota mereka dengan bijak

  3. Perbarui kolom dengan nilai Null

  4. Panggil ke fungsi yang tidak ditentukan oci_connect, php_oci8_12c.dll, windows 8.1, php5.6.6

  5. SQLDeveloper tidak menampilkan tabel di bawah koneksi di mana dikatakan tabel