【发布时间】:2014-05-04 14:27:39
【问题描述】:
CREATE OR REPLACE FUNCTION getParentLtree(parent_id bigint, tbl_name varchar)
RETURNS ltree AS
$BODY$
DECLARE
parent_ltree ltree;
BEGIN
-- This works fine:
-- select into parent_ltree l_tree from tbl1 where id = parent_id;
EXECUTE format('select into parent_ltree l_tree from %I
where id = %I', tbl_name,parent_id);
RETURN parent_ltree;
END;
$BODY$ LANGUAGE plpgsql;
上面的函数有两个问题:
-
parent_id是integer但它被替换为引号?int变量的正确格式说明符是什么? -
select into不适用于EXECUTE?如何进行上述注释查询以使用传递的表名?
【问题讨论】:
标签: postgresql plpgsql dynamic-sql string-concatenation