2016-06-02 9 views
0

とシーケンス・オブジェクトを使用することができません:は、私は1つの文で複数の行を挿入するとUNION

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 

私はこのエラーを取得します:

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 statement(s) executed, 1 row(s) affected, exec/fetch time: 0.110/0.000 sec [1 successful, 0 warnings, 0 errors]

どのように任意のアイデアこのエラーを解決できますか?

答えて

2

このIncrement a sequence twice in DB2

と同様のソリューションはここ

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) 

に秘密を制限を回避するために書き直さINSERTSELECTからのクエリは、その後、追加、最初のCTEとしてデータを作成することですされていますSEQUENCEオブジェクトは最外側SELECTです。

関連する問題