Я не уверен, почему я получаю приведенную ниже ошибку при выполнении приведенного ниже SQL в моем редакторе SQL для DB2 (DB2 для z/OS)
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, ДРАЙВЕР=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', '0061', 3) ОБЪЕДИНЕНИЕ ВСЕ(500151, 'ДБ', 'МДК', '0', '2', '002', 766473)
Как мы можем исправить вышеуказанную ошибку? Я не хочу использовать оператор SELECT вместе с UNION ALL для исправления. Есть ли способ сделать эту работу.
Я использую приведенную ниже версию DB2.
SELECT GETVARIABLE('SYSIBM.VERSION') FROM SYSIBM.SYSDUMMY1
-----------
DSN11015
Что я делаю не так?
insert
синтаксически неверен; вы путаетеinsert ... values...
иinsert ... select ...
варианты. Выберите один и придерживайтесь его. - person mustaccio   schedule 29.05.2019