Hallo!

Da die IBM i nun endlich auch JSON über die DB2 verarbeiten kann (a la XML) und da wir JSON immer häufger verwenden, wollte ich das Thema angehen, da unsere iSeries nun V7.2 und den erforderlichen PTF-Stand hat.

Was mir um die Burg nicht gelingen will, ist das JSON-Format abzuspeichern (Vorlage sind Beispiele von der IBM-Seite):

Ich habe eine Tabelle erstellt:

CREATE TABLE LKWSQL.WS_JSON (
ID DECIMAL(9, 0) GENERATED ALWAYS AS IDENTITY (
START WITH 1 INCREMENT BY 1
NO MINVALUE NO MAXVALUE
NO CYCLE NO ORDER
CACHE 20 )
,
JSON_INFO BLOB(3M) NOT NULL ,
CONSTRAINT LKWSQL.Q_LKWSQL_WS_JSON_ID PRIMARY KEY( ID )) ;

Danach versuche ich, ein gültiges JSON-Format zu speichern:

INSERT INTO LKWSQL.WS_JSON (JSON_INFO)
VALUES ( SYSTOOLS.JSON2BSON('{"detail":"hilfe"}')) ;

Versuche ich es in unserer Standard-Jobumgebung bekomme ich einen Umsetzungs-Fehler, was ich gut verstehe, weil unsere Jobs standardmäßig 1141 gesetzt haben.
Setze ich die JOB-CCSID auf 65535, so sieht die Fehlermeldung so aus:

Fehler von Auslöserprogramm oder externer Routine erkannt.
"Der zugeordnete Text ist JSON parsing error code: 4 for: C........z........."
...Fehler in Auslöserprogramm Tabelle QSQJSON in Schema QSYS".

Die Prozedur JSON2BSON gibt es 2 x im Schema QSYSTOOLS, eine die JSON im Format UTF-8 empfängt und eine die JSON mit CCSID 65535 empfängt.

Und nun weiß ich nicht mehr weiter.
Hat irgendjemand eine Idee oder schon dasselbe Problem gehabt?

Danke für Eure Hilfe..