1

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

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 但表达式的类型为文本

我应该如何更新我的函数或调用以使其工作?

4

1 回答 1

0

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

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

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

于 2013-03-01T15:17:21.640 回答