【发布时间】:2017-11-26 20:08:21
【问题描述】:
我编写了以下函数,该函数从另一个表“parameters_ltree_{time_created}”返回记录,其中 time_created 是来自history_ltree 表的列。
CREATE OF REPLAE function get_my_path(date_string text, path_arg ltree) RETURNS SETOF ltree AS
$BODY$
DECLARE
p text;
d text;
BEGIN
d := quote_ident(date_string);
p := 'parameters_ltree_';
RETURN QUERY EXECUTE format(
'SELECT path from %I' || '%I
WHERE path = %I
ORDER BY path
LIMIT 1'
, p, date_string, path_arg);
END
$BODY$
LANGUAGE plpgsql;
SELECT id, path, get_my_path(to_char(time_created, 'YYYYMMDD')), path) from historical_ltree
该函数可以编译,但是当我在底部运行 SELECT 查询时,它会引发语法错误:
ERROR: relation "parameters_ltree_" does not exist
LINE 1: SELECT path FROM parameters_ltree_"20161201"
^
我尝试了许多不同的方法来使连接正常工作,但无济于事,包括将 date_string 作为数字传递。
【问题讨论】:
标签: sql postgresql dynamic plpgsql