我需要从 plpgsql 函数返回动态生成的选择语句。这是我到目前为止所拥有的:
CREATE OR REPLACE FUNCTION qa_scf(cname character varying, tname character varying)
RETURNS text AS
$BODY$
BEGIN
return '* from ' ||tname|| 'where ' ||cname ||' != ''AL''';
end;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
调用者从批处理文件中运行:
select qa_scf('state', 'testtable')
这将返回文字文本“qa_scf * from testtable where state != 'AL'”。我需要从 sql 批处理文件运行这个查询,但我似乎找不到正确的返回语句让这个函数返回一个字符串,然后让 sql 批处理执行它。我正在使用 Postgres 9.0。