簡體   English   中英

用戶定義函數在PostgreSQL中返回表

[英]User Defined Functions returning Tables in PostgreSQL

我正在嘗試創建一個UDF,該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...

更改以下行: '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;

(刪除單引號)將解決此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM