Попытка создать запись изменений в виде строки XML.
Приведенный ниже код не работает, либо XML не может быть приведен к varchar, либо ошибка SQL неверна.
CREATE TRIGGER "QS36F"."WEBTEST1_I"
AFTER INSERT ON "QS36F"."WEBTEST1"
REFERENCING NEW AS R
FOR EACH ROW MODE DB2SQL
INSERT INTO "QS36F"."WEBTEST2" ( PREVIOUS_R , NEW_R , ENTRY_DATE ) VALUES ( NULL , CAST(XMLROW(R.ID,R.ITEMNUMBER) as varchar(16355)), CURRENT_TIMESTAMP )
Такжепробовал
CREATE TRIGGER "QS36F"."WEBTEST1_I"
AFTER INSERT ON "QS36F"."WEBTEST1"
REFERENCING NEW AS R
FOR EACH ROW MODE DB2SQL
INSERT INTO "QS36F"."WEBTEST2" ( PREVIOUS_R , NEW_R , ENTRY_DATE ) VALUES ( NULL , CAST((SELECT XMLROW(R.ID, R.ITEMNUMBER) FROM sysibm.sysdummy1) as varchar(16355)) , CURRENT_TIMESTAMP )
Также пытался сделать тип данных WEBTEST2 в виде XML ... Никаких кубиков.
[]
РЕДАКТИРОВАТЬ:
РЕДАКТИРОВАНИЕ2:
Я получаю
[SQL0312] Переменная ITEMNUMBER не определена илиНе используется.
для следующего запроса?
CREATE TRIGGER "QS36F"."WEBTEST1_U"
AFTER UPDATE ON "QS36F"."WEBTEST1"
REFERENCING
OLD AS o
NEW AS r
FOR EACH ROW MODE DB2SQL
INSERT INTO
"QS36F"."WEBTEST2" ( NEW_R , PREVIOUS_R, ENTRY_DATE )
VALUES ( (select xmlserialize(XMLROW(id as id,itemnumber as itemnumber) as varchar(16355))
from table ( values (r.id, r.itemnumber)) as tbl
), (select xmlserialize(XMLROW(id as id,itemnumber as itemnumber) as varchar(16355))
from table ( values (o.id, o.itemnumber)) as tbl
)
, CURRENT_TIMESTAMP
)
);