DB2 для z/OS SQL: переопределение значения пользователя запрещено

У меня есть две таблицы с одинаковым определением, но разными владельцами. Создана новая таблица на основе одного из них:

CREATE TABLE SHADOW.ADM LIKE USR1.ADM;
ALTER TABLE SHADOW.ADM ADD SHTYPE CHAR(1);
ALTER TABLE SHADOW.ADM ADD SHCOUNTER INTEGER GENERATED ALWAYS AS IDENTITY;
CREATE UNIQUE INDEX SHADOW.IXADM ON SHADOW.ADM(SHCOUNTER) USING STOGROUP SG1;

Когда я пытаюсь выполнить SQL ниже, я получаю синтаксическую ошибку:

INSERT INTO SHADOW.ADM
  OVERRIDING USER VALUE
  SELECT A.*,0 FROM     
    (SELECT O.*,'B' FROM USR1.ADM O UNION ALL
     SELECT N.*,'A' FROM USR2.ADM N) A;

Ошибка:

  OVERRIDING USER VALUE CLAUSE IS NOT PERMITTED. SQLCODE=-109, SQLSTATE=42601, DRIVER=3.72.44

Странно то, что приведенный ниже SQL выполняется без ошибок:

INSERT INTO SHADOW.ADM
  OVERRIDING USER VALUE
  SELECT A.*,'B',0 FROM USR1.ADM A;     

Это ошибка в SQL-парсере DB2 или я что-то упустил?

Кстати: это на DB2 для z/OS V7, доступ к которому осуществляется из DBeaver как клиент.

0 ответов

Другие вопросы по тегам