下面的代码显示此错误
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();
你能帮帮我吗?
1条答案
按热度按时间mwngjboj1#
你也许应该写:
'SELECT ' || _column_name || ',id FROM ' || _table_name;
与||表名之前。