【发布时间】:2014-02-16 00:26:35
【问题描述】:
我正在尝试创建一个 UDF,它返回一个包含四个值的表:
CREATE TABLE ts_table
(
id character varying,
year integer,
rank double precision,
votes integer
);
然后,使用 UDF,我必须返回一个由(类似于以下内容)定义的表:
CREATE FUNCTION ts_myfunc(text) RETURNS SETOF ts_table AS $$
'SELECT id,year,rank,votes FROM productions NATURAL JOIN directors NATURAL JOIN ratings WHERE attr is NULL AND pid=$1 ORDER BY year;'
$$ LANGUAGE SQL;
但是,当我尝试使用该命令创建 UDF 时,我得到了
ERROR: syntax error at or near "'SELECT id,year,rank,votes FROM productions NATURAL JOIN directors NATURAL JOIN ratings WHERE attr is NULL AND pid=$1 ORDER BY year;'"
LINE 2: 'SELECT id,year,rank,votes FROM productions NATURAL JOIN dir...
【问题讨论】:
-
阅读"dollar-quoting"。这个密切相关的问题可能会有所帮助:stackoverflow.com/questions/12144284/…
-
@ErwinBrandstetter 谢谢,我注意到我的错误有点太晚了,但我想我会把它作为未来类似问题的答案。
标签: sql postgresql user-defined-functions