可以联合两个EXECUTE BLOCK语句吗?



是否有一种方法可以执行两个集合的联合,其中两个集合都是由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。我不知道是什么阻止你创建一个单独的执行块:如果参数不同,那么你只需要为其中一个添加单独的参数,或者-如果是关于输出参数-重命名东西,使它们都可用。

最新更新