[英]SQL Error [42601]: ERROR: syntax error at or near "int" Position: 22
[英]SQL Error[42601]: Error: syntax error at or near "0"
我不明白如何从 select 中创建一个数组,我有一个错误
SQL 错误 [42601]:错误:“0”处或附近的语法错误,名为“未命名”的 dblink 连接发生错误:无法执行查询。
create temporary table house_address as
(SELECT full_address
FROM dblink('db_d',
'drop table if exists _x17092018;
create temporary table _x17092018 (
guid character varying,
full_address character varying,
address_guid character varying
);
do $$
declare
guids_list character varying[]
:= ''{(''' ||
(SELECT STRING_AGG(DISTINCT guid, ''', ''')
FROM lc) ||
''')}'';
r character varying;
begin
foreach r in array guids_list
loop
insert into _x17092018
select r, t.*
FROM sm.func_by_houseid(r, TRUE, ''db'') as t;
end loop;
END$$;'
) AS addr(full_address TEXT)
);
错误必须来自guids_list
的初始化。
它的写法,它会像
{[guid1', 'guid ' containing spaces and quote', 'guid3]}
这显然不是你想要的。 此外,正如我试图证明的那样,它对 SQL 注入是开放的。
你可以使用类似的东西
'guids_list character varying[] := ' ||
(SELECT quote_literal(array_agg(DISTINCT guid)) FROM lc) || ';'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.