调试经验——如何查看Oracle自定义函数 (How to view definition of user defined functions in Oracle)

时间:2024-04-01 17:20:42

问题描述:

现有的Query中似乎使用了一个自定义函数String_to_list,为了排查问题,需要查看这个函数的定义。

方法:

 

--新建的function,并未保存在All_ojbects表中,而是保存在user_objects表中
SELECT *
  FROM ALL_OBJECTS
 WHERE OBJECT_NAME LIKE '%concatenate_list%';

--可指定对象类型为"FUNCTION",在USER_OJBECTS表中查找自定义函数
SELECT *
  FROM USER_OBJECTS
 WHERE OBJECT_TYPE = 'FUNCTION';

查询结果:

调试经验——如何查看Oracle自定义函数 (How to view definition of user defined functions in Oracle)

--可从USER_SOURCE表中查看自定义函数的SQL脚本
SELECT *
  FROM USER_SOURCE
 WHERE NAME = 'CONCATENATE_LIST';

查询结果:

调试经验——如何查看Oracle自定义函数 (How to view definition of user defined functions in Oracle)

--输出自定义函数的内容
SELECT DBMS_LOB.SUBSTR (
          DBMS_METADATA.GET_DDL ('FUNCTION', 'CONCATENATE_LIST', 'C##SCOTT'))
  FROM DUAL;

查询结果:

调试经验——如何查看Oracle自定义函数 (How to view definition of user defined functions in Oracle)

参考文章:

https://www.cnblogs.com/seven1314pp/p/9005942.html