Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 返回带有文本变量的查询_Sql_Postgresql - Fatal编程技术网

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);