在函数中使用ENUM类型

时间:2013-03-01 14:58:55

标签: postgresql stored-procedures

我有一个定义如下的函数:

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');

我收到此错误:

  

错误:列“somevar”的类型为enum_my_type,但表达式的类型为text

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

1 个答案:

答案 0 :(得分:0)

找到它。我有另一个不正确的功能

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

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