0

DB2 用の SQL エディタ (DB2 for z/OS) で以下の SQL を実行しているときに、なぜ以下のエラーが発生するのかわかりません。

DECLARE GLOBAL TEMPORARY TABLE SESSION.VTI_GUI_TMP ( 
  ENCRP_PRC_RL_ID INTEGER NOT NULL,  
  PROC_SYS_CD VARCHAR(10) NOT NULL,  
  VER_KEY_SET_CD VARCHAR(10) NOT NULL,  
  TRNSLT_TP_CD VARCHAR(10) NOT NULL,  
  SET_INDEX_NUM VARCHAR(10) NOT NULL,  
  SET_MDK_DKI_NUM VARCHAR(10) NOT NULL,  
  PACKET_NUM INTEGER NOT NULL ) ON COMMIT PRESERVE ROWS; 

INSERT INTO SESSION.VTI_GUI_TMP ( 
  ENCRP_PRC_RL_ID, PROC_SYS_CD, VER_KEY_SET_CD, TRNSLT_TP_CD, 
  SET_INDEX_NUM, SET_MDK_DKI_NUM, PACKET_NUM
) 
VALUES (500159, 'DB', 'MDK', '0', '1', '001', 766473) 
UNION ALL 
(500151, 'DB', 'MDK', '0', '2', '002', 766473);

select * from SESSION.VTI_GUI_TMP; 

DROP TABLE SESSION.VTI_GUI_TMP; 

上記のSQLを実行中に、以下のエラーが発生します

キーワード UNION の不正使用。非アトミックのトークンが予期されていました。SQLCODE=-199、SQLSTATE=42601、DRIVER=3.63.75 SQL コード: -199、SQL 状態: 42601

エラーが発生しました: INSERT INTO SESSION.VTI_GUI_TMP (ENCRP_PRC_RL_ID, PROC_SYS_CD, VER_KEY_SET_CD, TRNSLT_TP_CD, SET_INDEX_NUM, SET_MDK_DKI_NUM, PACKET_NUM) VALUES(500159, 'DB', 'MDK', '0', '1', '001', 766473) UNION ALL(500151, 'DB', 'MDK', '0', '2', '002', 766473)

上記のエラーを修正するにはどうすればよいですか? UNION ALL と一緒に SELECT ステートメントを使用して修正したくありません。これを機能させる方法はありますか。

以下のDB2バージョンを使用しています

  SELECT GETVARIABLE('SYSIBM.VERSION') FROM SYSIBM.SYSDUMMY1
  -----------
  DSN11015

私は何を間違っていますか?

4

2 に答える 2