是否有一种方法可以执行两个集合的联合,其中两个集合都是由2个不同的执行块命令输出的?
set结构是相同的,但是每个set包含不同的参数,因此我不能很容易地将它们合并到一个执行块命令中。
例如
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
。我不知道是什么阻止你创建一个单独的执行块:如果参数不同,那么你只需要为其中一个添加单独的参数,或者-如果是关于输出参数-重命名东西,使它们都可用。