1. 程式人生 > >除錯經驗——如何檢視Oracle自定義函式 (How to view definition of user defined functions in Oracle)

除錯經驗——如何檢視Oracle自定義函式 (How to view definition of user defined functions in Oracle)

問題描述:

現有的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';

查詢結果:

--可從USER_SOURCE表中檢視自定義函式的SQL指令碼
SELECT *
  FROM USER_SOURCE
 WHERE NAME = 'CONCATENATE_LIST';

查詢結果:

--輸出自定義函式的內容
SELECT DBMS_LOB.SUBSTR (
          DBMS_METADATA.GET_DDL ('FUNCTION', 'CONCATENATE_LIST', 'C##SCOTT'))
  FROM DUAL;

查詢結果:

參考文章:

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