[英]How to pass parameter for a function containing input variable of type varchar(2) ARRAY[50] in postgresql
[英]How to pass ENUM variable as input for POSTGRESQL functions
我在 MySQL 中有一個功能正常的函數:
CREATE PROCEDURE `Accounts_Active`(IN_DeptName VARCHAR(255), IN_Src ENUM('TRAINING','ELZA'))
BEGIN
END$$
DELIMITER ;
但是當轉換為 PostgreSQL 時:
CREATE or replace FUNCTION Accounts_Active(IN_DeptName VARCHAR(255), IN_Src ENUM('TRAINING','ELZA'))
RETURNS void
AS
$$
BEGIN
RAISE INFO ' ';
END;
$$ LANGUAGE plpgsql;
出現以下錯誤:
ERROR: type enum does not exist
SQL state: 42704
任何有關如何修復此錯誤的指導將不勝感激。
創建枚舉數據類型:
CREATE TYPE atype AS ENUM ('TRAINING', 'ELZA');
然后您可以將其用作函數參數:
CREATE FUNCTION Accounts_Active(
IN_DeptName text,
IN_Src atype
) RETURNS void
...
使用枚舉時,請記住您可以向此類數據類型添加值,但永遠不要再刪除它們。 通常你會更好地使用像text
這樣的字符串數據類型,但當然你必須編寫代碼來檢查輸入的有效性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.