DB2-LUW:存储过程中的 UNION

DB2-LUW: UNION in Stored Procedure

我正在尝试 运行 在存储过程中执行以下简单 select:

P1: BEGIN

    DECLARE v_uid INTEGER;
    
    SELECT  UID
    INTO    v_id
    FROM    TableA
    UNION 
    SELECT  UID
    FROM    TableB
    ;
    
END P1

它在 z/OS 数据库上工作正常,但在 LUW 数据库上我收到以下错误:

 Create‬‎ ‪stored‬‎ ‪procedure‬‎ ‪returns‬‎ ‪SQLCODE‬‎:‪‬‎ ‪‬‎-‪104‬‎,‪‬‎ ‪SQLSTATE‬‎:‪‬‎ ‪42601‬‎.‪
 TEST‬‎:‪‬‎ ‪25‬‎:‪‬‎ ‪An‬‎ ‪unexpected‬‎ ‪token‬‎ ‪‬‎"‪SELECT UID 
 FROM TABLEB"‬‎ ‪was‬‎ ‪found‬‎ ‪following‬‎ ‪‬‎"FROM TABLEA UNION"‬‎.‪‬‎ 
 Expected‬‎ ‪tokens‬‎ ‪may‬‎ ‪include‬‎:‪‬‎ ‪ ‬‎"‪‪<space>"‬‎.‪‬‎.‪‬‎ 
 ‪SQLCODE‬‎=‪‬‎-‪104‬‎,‪‬‎ ‪SQLSTATE‬‎=‪42601‬‎,‪‬‎ ‪DRIVER‬‎=‪4‬‎.‪24‬‎.‪92

是否不允许在 LUW 上使用 UNION 关键字?

你必须将 union 放在子选择中,例如

select uid into v_id from
   (select uid from tablea
    union select uid from tableb);