Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Cách tìm tên của thủ tục được lưu trữ bằng cách sử dụng Tên cột trong Oracle 11g

Không có cách nào được đảm bảo, nhưng bạn có thể tìm kiếm người dùng / tất cả / dba_source bằng cách sử dụng regexp_like để kiểm tra toàn bộ các từ và tham chiếu chéo từ đó với user / all / dba_dependencies để thu hẹp danh sách các gói cần kiểm tra.

select s.name, s.type, s.line, s.text
from   user_source s
where  ltrim(s.text,chr(9)||' ') not like '--%'
and    regexp_like(lower(s.text),'\Wyour_column_name_here\W')
and    (s.name, s.type) in
       ( select d.name, d.type
         from   user_dependencies d
         where  d.referenced_owner = user
         and    d.referenced_name = 'YOUR_TABLE_NAME_HERE' );

hoặc nếu có thể có tham chiếu đến nó từ các lược đồ khác,

select s.owner, s.name, s.type, s.line, s.text
from   all_source s
where  ltrim(s.text,chr(9)||' ') not like '--%'
and    regexp_like(lower(s.text),'\Wyour_column_name_here\W')
and    (s.owner, s.name, s.type) in
       ( select d.owner, d.name, d.type
         from   all_dependencies d
         where  d.referenced_owner = user
         and    d.referenced_name = 'YOUR_TABLE_NAME_HERE' );

Bạn có thể chỉ cần sử dụng select distinct s.owner, s.name, s.type ... để có được danh sách các đối tượng cần điều tra.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chèn nhiều hàng từ Khung dữ liệu R vào Cơ sở dữ liệu Oracle

  2. tham gia có điều kiện trong oracle

  3. Sự khác biệt về thời gian giữa các bản ghi

  4. Cách truy vấn dữ liệu khối lớn

  5. Thoát các ký tự đặc biệt trong SQL