postgresql plsql后gresql:SQL错误[42601]:返回查询

iq0todco  于 2022-12-18  发布在  PostgreSQL
关注(0)|答案(1)|浏览(241)

下面的代码显示此错误

SQL Error [42601]: ERREUR: erreur de syntaxe à la fin de l'entrée
  Où : fonction PL/pgSQL users_tables(), ligne 26 à RETURN QUERY

我不明白为什么!事实上,我在循环内部启动了查询,它工作正常,我没有看到代码中有任何逻辑错误

DROP FUNCTION users_tables();

create or replace
function users_tables()
 returns table (table_name text, id int)
 language plpgsql
as $function$
declare 
   _table_name text;
   _column_name text;
begin
    for _table_name,_column_name in 
select
            distinct t.table_name,
    c2.column_name
from
            information_schema.tables t
inner join information_schema.columns c1 on
            c1.table_name = t.table_name
    and c1.table_schema = t.table_schema
    and c1.column_name = 'utilisateur_fk'
inner join information_schema.columns c2 on
            c2.table_name = t.table_name
    and c2.table_schema = t.table_schema
    and lower(c2.column_name) like 'date%'
order by 
            t.table_name,
    c2.column_name
limit 
            2
    loop
             return QUERY execute
        'SELECT ' || _column_name || ',id FROM  ' _table_name;
end loop;
end

$function$
;

select users_tables();

你能帮帮我吗?

mwngjboj

mwngjboj1#

你也许应该写:'SELECT ' || _column_name || ',id FROM ' || _table_name;与||表名之前。

相关问题