Problem wydaje się być banalny, a jednak nie mogę go przeskoczyć więc proszę spojrzeć może coś przeoczyłem.
Zgodnie z tutorialem tworze trigger walidujący dokument XML przed insertem.
CREATE TRIGGER VALIDATION_TRIGGER BEFORE INSERT ON MYTABLE
REFERENCING NEW AS N
FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
DECLARE VAR1 VARCHAR(1000);
DECLARE VAR2 VARCHAR(1000);
SET VAR1 = (SELECT S.NAME FROM SCHEMAS S, MYTABLE N WHERE S.ID=N.ID FETCH FIRST 1 ROWS ONLY);
SET VAR2 = 'XMLVALIDATE(N.TRESC ACCORDING TO XMLSCHEMA ID ' || VAR1 ||')';
SET (N.COL1)= VAR2;
SET (N.COL2)= XMLVALIDATE(N.COL2 ACCORDING TO XMLSCHEMA ID MYSCHEMA);
END@
Na wszelki wypadek wstawiam w COL1 i COL2 to samo. Przy COL2 nie ma problemu. Problem generuje waldacja COL1.
Select poprawnie zwraca nazwę MYSCHEMA. Wydaje mi się, że powinno zadziałać.
Podczas wywoływania nie ma błędów, ale przy insercie pojawia się błąd triggera SQLCODE "-16132", SQLSTATE "2200M"
Z góry dziękuję za wszystkie sugestie.