是否可以联合两个 EXECUTE BLOCK 语句?

Is it possible to UNION two EXECUTE BLOCK statements?

有没有办法执行 2 个集的并集,其中两个集都由 2 个不同的执行块命令输出?

集合结构相同,但每个包含不同的参数,因此我不能轻易地将两者合并到一个执行块命令中。

例如

EXECUTE BLOCK RETURNS -- set 1

AS DECLARE VARIABLE....my sql 1

BEGIN
FOR
..... my sql 1
DO
BEGIN
FOR
..... my sql 1 
DO BEGIN
SUSPEND;

END
END
END      UNION

EXECUTE BLOCK RETURNS -- set 2

AS DECLARE VARIABLE....my sql 2

BEGIN
FOR
..... my sql 2
DO
BEGIN
FOR
..... my sql 2 
DO BEGIN
SUSPEND;

END
END
END 

EXCUTE BLOCK 不能用在 UNION 中。只有 SELECT 可以参加 UNION。如果你想合并两个 PSQL 块的结果,你需要将它们创建为可选择的存储过程,而不是临时的 EXECUTE BLOCK 语句。使用两个可选择的存储过程,然后您可以应用 UNION:

select * from procedure1
union
select * from procedure2

或者,如果您确实需要使用 EXECUTE BLOCK,那么您需要创建一个 EXECUTE BLOCK 来创建完整的输出。我看不出是什么阻止你创建一个单一的执行块:如果参数不同,那么你只需要为其中一个添加单独的参数,或者 - 如果它是关于输出参数 - 重命名事物以使它们都可以使用。