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

Как да намерите името на съхранената процедура с помощта на име на колона в Oracle 11g

Няма гарантиран начин, но можете да търсите user/all/dba_source с помощта на regexp_like за да проверите за цели думи и да ги кръстосате с user/all/dba_dependencies, за да стесните списъка с пакети за проверка.

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' );

или ако може да има препратки към него от други схеми,

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' );

Може да го направите просто да използвате select distinct s.owner, s.name, s.type ... за да получите списък с обекти за изследване.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Функция NANVL() в Oracle

  2. Вземете тип данни на полето в оператор select в ORACLE

  3. ORA-04021:възникна изчакване при изчакване за заключване на обекта

  4. Грешка:ORA-00907:липсваща дясна скоба

  5. Истински размер на таблично пространство в Oracle