【问题标题】:User Defined Functions returning Tables in PostgreSQL在 PostgreSQL 中返回表的用户定义函数
【发布时间】: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...

【问题讨论】:

标签: sql postgresql user-defined-functions


【解决方案1】:

换行 'SELECT id,year,rank,votes FROM productions NATURAL JOIN directors NATURAL JOIN ratings WHERE attr is NULL AND pid=$1 ORDER BY year;'

SELECT id,year,rank,votes FROM productions NATURAL JOIN directors NATURAL JOIN ratings WHERE attr is NULL AND pid=$1 ORDER BY year;

(删除单引号)将解决问题。

【讨论】:

    猜你喜欢
    • 2014-02-27
    • 1970-01-01
    • 1970-01-01
    • 2019-09-11
    • 2017-01-02
    • 1970-01-01
    • 2011-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多