Sql 返回带有文本变量的查询
我需要返回一些查询,我得到了,隐式文本变量。我怎么能弄到里面的东西?因为它不明白Sql 返回带有文本变量的查询,sql,postgresql,Sql,Postgresql,我需要返回一些查询,我得到了,隐式文本变量。我怎么能弄到里面的东西?因为它不明白\u table\u name不是文本而是变量 因为我犯了这样的错误 ERROR: "_table_name" relation does not exist LINE 1: SELECT DISTINCT "TYPES".type_id FROM "TYPES", _table_name WH... 这是我的功能 CREATE OR REPLACE FUNCTION get_las_types(_table_
\u table\u name
不是文本而是变量
因为我犯了这样的错误
ERROR: "_table_name" relation does not exist
LINE 1: SELECT DISTINCT "TYPES".type_id FROM "TYPES", _table_name WH...
这是我的功能
CREATE OR REPLACE FUNCTION get_las_types(_table_num integer)
RETURNS TABLE(_type int) AS
$BODY$
DECLARE
_table_name text;
BEGIN
_table_name:='well_las_data_'||_table_num;
RETURN QUERY SELECT DISTINCT "TYPES".type_id FROM "TYPES", _table_name WHERE "TYPES".type_id = _table_name.type_id;
END;
$BODY$
LANGUAGE plpgsql;
您可以使用新函数(9.1及更高版本)安全地构造动态查询:
您可以找到其他示例。您使用的是哪个PostgreSQL版本?@Houari是最后一个示例之一。与9.2或SMTH一样,您可以使用
格式
说明:
return query execute format('SELECT DISTINCT "TYPES".type_id FROM "TYPES", %I WHERE "TYPES".type_id = %I.type_id;', _table_name,_table_name);