首页 文章

如何在oracle中列出特定存储过程中使用的所有表

提问于
浏览
2

我需要获取oracle中特定存储过程中使用的所有表的列表 . 如何使用查询获取该列表?

2 回答

  • 3

    跳过 Dynamic SQL ,因为它们在编译期间未在 SEMANTIC 检查中验证

    select 
       proc_syn.referenced_owner, 
       proc_syn.referenced_name, 
       proc_syn.referenced_type,
       syn_tab.table_name
    from 
       dba_dependencies proc_syn, dba_synonyms syn_tab, dba_tables tables
    where 
         proc_syn.name= 'YOUR_PROC' 
      AND REFERENCED_TYPE in ( 'SYNONYM','TABLE')
      AND proc_syn.referenced_name = syn_tab.synonym_name
      AND syn_tab.synonym_name = tables.table_name
      AND syn_tab.owner = 'PUBLIC'
    order by 
      proc_syn.referenced_owner, syn_tab.table_name;
    
  • 0
    select 
       referenced_owner, 
       referenced_name, 
       referenced_type
    from 
       dba_dependencies
    where 
       name= 'PROC_NAME' AND REFERENCED_TYPE = 'TABLE'
    order by 
       referenced_owner, referenced_name, referenced_type;
    

相关问题