首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

Oracle 判斷預存程序是否存在

     編輯:Oracle 教學

快速查詢語法

透過 USER_SOURCE 視圖即可確認某預存程序是否存在於目前使用者的 Schema 中:

SELECT DISTINCT name
FROM   user_source
WHERE  type = 'PROCEDURE'
AND    name = 'CONTINUEHISORDERPROCESS';

說明

  • TYPE = 'PROCEDURE' 過濾程序物件;若為函數請改為 'FUNCTION'、套件為 'PACKAGE'。
  • DISTINCT 避免同一程序有多行原始碼而重複顯示。
  • 若需跨 Schema 查詢,請改用 ALL_SOURCE 或 DBA_SOURCE 並加上 OWNER 條件。

進階:PL/SQL 封裝函數

若頻繁使用,可寫成函數直接回傳布林值:

CREATE OR REPLACE FUNCTION proc_exists(p_name VARCHAR2) RETURN BOOLEAN IS
  v_cnt NUMBER;
BEGIN
  SELECT COUNT(*)
  INTO   v_cnt
  FROM   user_source
  WHERE  type = 'PROCEDURE'
  AND    name = UPPER(p_name);
  RETURN v_cnt > 0;
END;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved