35

複数の行を DB2 テーブルに挿入したいと考えています。このようなクエリがあります

insert into tableName 
(col1, col2, col3, col4, col5) 
values 
(val1, val2, val3, val4, val5),
(val1, val2, val3, val4, val5),
(val1, val2, val3, val4, val5),
(val1, val2, val3, val4, val5);

このクエリは機能しません。DB2 でこれを行うためのより構文的に正しい方法があるかどうかはわかりません。しかし、テストデータを挿入すると便利です。

4

5 に答える 5

34

DB2 for z/OS を使用していると仮定していますが、残念ながら (何らかの理由で、理由がまったくわかりませんでした)、全選択が適切な値リストの使用をサポートしていません。

以下のような選択を使用できます。少し扱いに​​くいですが、動作します:

INSERT INTO tableName (col1, col2, col3, col4, col5) 
SELECT val1, val2, val3, val4, val5 FROM SYSIBM.SYSDUMMY1 UNION ALL
SELECT val1, val2, val3, val4, val5 FROM SYSIBM.SYSDUMMY1 UNION ALL
SELECT val1, val2, val3, val4, val5 FROM SYSIBM.SYSDUMMY1 UNION ALL
SELECT val1, val2, val3, val4, val5 FROM SYSIBM.SYSDUMMY1

あなたのステートメントは、少なくとも LUW 9.7 でテストした場合、DB2 for Linux/Unix/Windows (LUW) で機能します。

于 2012-07-31T15:27:38.627 に答える
4

他の方法

INSERT INTO tableName (col1, col2, col3, col4, col5)
select * from table(                        
                    values                                      
                    (val1, val2, val3, val4, val5),   
                    (val1, val2, val3, val4, val5),   
                    (val1, val2, val3, val4, val5),   
                    (val1, val2, val3, val4, val5)    
                    ) tmp
于 2016-11-15T18:36:55.027 に答える