有函数f
oracle中怎样查询函数f都在哪被调用了?谢谢!

解决方案 »

  1.   

    select sql_text from v$sql where sql_text like '%f(%';
      

  2.   

    可以查dba_dependencies或者是user_dependencies表
    select * from dba_dependencies where REFERENCED_NAME='TEMP_TABLE2';这里就是查所有的用到TEMP_TABLE2的对象,你查function直接把function对象名字放这里就可以了不过这里都是硬依赖,如果是一些动态sql里的依赖的话,是查不出来的。
      

  3.   

    在哪被调用?你是说存储过程或者包或者其他函数里面调用F是不是。
    select * from user_source t where t.text like '%f%'
    查询出来的可能有点多。你的函数名不会就只有一个字母吧。
      

  4.   


    SELECT * FROM user_dependencies WHERE referenced_name='F';
      

  5.   


    SELECT * FROM USER_SOURCE WHERE TEXT LIKE '%F%'
      

  6.   

    很多时候我们可以借助工具,例如:pl/sql developer