Db2 无法将序列对象与UNION一起使用

Db2 无法将序列对象与UNION一起使用,db2,zos,Db2,Zos,当我在一句话中插入多行时: INSERT INTO ORG01.RC_REFERENCIA(O9030_IDEMPR,O9030_COD_INT,O9030_TIP_REF,O9030_ID_REFER,O9030_FEC_ALT,O9030_UIDALTA ) SELECT '0015',(NEXT VALUE FOR OR4ADM.SQ_REFCRU),'NT','10001','2008-12-31 00:00:00.000','ab110699' FROM SYSIBM.SYSDUM

当我在一句话中插入多行时:

INSERT INTO ORG01.RC_REFERENCIA(O9030_IDEMPR,O9030_COD_INT,O9030_TIP_REF,O9030_ID_REFER,O9030_FEC_ALT,O9030_UIDALTA )  
SELECT '0015',(NEXT VALUE FOR OR4ADM.SQ_REFCRU),'NT','10001','2008-12-31 00:00:00.000','ab110699' FROM SYSIBM.SYSDUMMY1 UNION ALL  
SELECT '0015',(NEXT VALUE FOR OR4ADM.SQ_REFCRU),'NT','10002','20 08-12-31 00:00:00.000','ab017705' FROM SYSIBM.SYSDUMMY1   
我得到这个错误:

[插入-0行,0.265秒][错误代码:-348,SQL状态:428F9] 无法在此上下文中指定OR4ADM.SQ_REFCRU的下一个值。 SQLCODE=-348,SQLSTATE=428F9,DRIVER=4.18.60

当我仅尝试使用一条select语句时,效果很好:

INSERT INTO ORG01.RC_REFERENCIA(O9030_IDEMPR,O9030_COD_INT,O9030_TIP_REF,O9030_ID_REFER,O9030_FEC_ALT,O9030_UIDALTA )  
SELECT '0015',(NEXT VALUE FOR OR4ADM.SQ_REFCRU),'NT','10001','2008-12-31 00:00:00.000','ab110699' FROM SYSIBM.SYSDUMMY1  
。。执行1条语句,影响1行,执行/提取时间: 0.110/0.000秒[1次成功,0次警告,0次错误]


知道如何解决此错误吗?

这是一个类似的解决方案

以下是
插入
选择
查询,已重写以避免限制

INSERT INTO ORG01.RC_REFERENCIA(O9030_IDEMPR,O9030_COD_INT,O9030_TIP_REF,O9030_ID_REFER,O9030_FEC_ALT,O9030_UIDALTA )  
SELECT a,OR4ADM.SQ_REFCRU.NEXTVAL,b,c,d,e
FROM ( 
  SELECT '0015','NT','10001','2008-12-31 00:00:00.000','ab110699' FROM SYSIBM.SYSDUMMY1
  UNION ALL 
  SELECT '0015','NT','10002','2008-12-31 00:00:00.000','ab017705' FROM SYSIBM.SYSDUMMY1   
) AS t(a,b,c,d,e)

秘密在于首先将数据创建为
CTE
,然后将
序列
对象添加到最外层的
选择

,这与

以下是
插入
选择
查询,已重写以避免限制

INSERT INTO ORG01.RC_REFERENCIA(O9030_IDEMPR,O9030_COD_INT,O9030_TIP_REF,O9030_ID_REFER,O9030_FEC_ALT,O9030_UIDALTA )  
SELECT a,OR4ADM.SQ_REFCRU.NEXTVAL,b,c,d,e
FROM ( 
  SELECT '0015','NT','10001','2008-12-31 00:00:00.000','ab110699' FROM SYSIBM.SYSDUMMY1
  UNION ALL 
  SELECT '0015','NT','10002','2008-12-31 00:00:00.000','ab017705' FROM SYSIBM.SYSDUMMY1   
) AS t(a,b,c,d,e)
秘密在于首先将数据创建为
CTE
,然后将
SEQUENCE
对象添加到最外层的
SELECT