2013-03-01 56 views
1

我有一个函数定义如下:使用ENUM类型

CREATE OR REPLACE FUNCTION public.somefcn(
    _somevar enum_my_type 
) 
RETURNS integer AS 
$body$ 
DECLARE 
    ret_id INTEGER 
BEGIN 
    INSERT INTO mytable(somevar) VALUES (_somevar) RETURNING id INTO ret_id; 
    RETURN ret_id; 
END; 
$body$ 
LANGUAGE 'plpgsql' 

当我把这种喜欢这个

SELECT somefcn('validenumitem'); 

我得到这个错误:

ERROR: column "somevar" is of type enum_my_type but expression is of type text

应该如何我更新我的功能或致电使其工作?

回答

0

找到它。我有另一个不正确的功能,因为它更合适。

CREATE OR REPLACE FUNCTION public.somefcn(
    _somevar text 
) 
... 

显然,PostgreSQL拿了那个,因为它更合适。