刪除函數。
語法
DROP FUNCTION [ IF EXISTS ] name
[ ([ [ argmode ] [ argname ] argtype ] [, ...]) ]
[ CASCADE | RESTRICT ]
說明
DROP FUNCTION
可刪除現有函數的定義。要執行此命令,您必須是超級用戶或者是函數的所有者。如果這是重載函數,則必須指定函數的所有輸入(IN
、IN OUT
)參數的數據類型。(該要求與 Oracle 數據庫不兼容。在 Oracle 中,僅指定函數名稱。PolarDB PostgreSQL版(兼容Oracle)允許重載函數名稱,因此在PolarDB PostgreSQL版(兼容Oracle)中,重載函數的 DROP FUNCTION 命令需要使用輸入參數數據類型給定的函數簽名。)
使用 IFEXISTS
、CASCADE
或 RESTRICT
與 Oracle 數據庫不兼容,僅由PolarDB PostgreSQL版(兼容Oracle)使用。
參數
參數 | 說明 |
---|---|
IF EXISTS | 如果函數不存在,將不引發錯誤。在這種情況下,會發出通知。 |
name | 現有函數的名稱(可能是 schema 限定的)。 |
argmode | 參數的模式:IN 、INOUT 或 OUT 。如果省略,則默認值為 IN 。請注意,DROP FUNCTION 實際上并不受 OUT 參數影響,因為只需要輸入參數即可確定函數的身份。因此,僅列出 IN 和 INOUT 參數即可。(指定 argmode 與 Oracle 數據庫不兼容,它僅適用于PolarDB PostgreSQL版(兼容Oracle)。) |
argname | 參數的名稱。請注意,DROP FUNCTION 實際上并不受參數名稱影響,因為只需要參數數據類型即可確定函數的身份。(指定 argname 與 Oracle 數據庫不兼容,它僅適用于PolarDB PostgreSQL版(兼容Oracle)。) |
argtype | 函數參數的數據類型。(指定 argtype 與 Oracle 數據庫不兼容,它僅適用于PolarDB PostgreSQL版(兼容Oracle)。) |
CASCADE | 自動刪除依賴于函數的對象(如運算符或觸發器),并就此刪除依賴于這些對象的所有對象。 |
RESTRICT | 如果存在依賴于函數的對象,則拒絕刪除函數。這是默認值。 |
示例
以下命令會刪除 emp_comp 函數。
DROP FUNCTION emp_comp(NUMBER, NUMBER);