PDA

View Full Version : BLOB Felt in Datei



janwijnants
08-12-05, 12:19
Wir haben third-party software auf unseren ISeries.
Diese software umfasst auch eine physische Datei mit ein VARCHAR 30000 Felt.

Wir haben ein RPG Auslöserprogram (trigger) auf diese Datei gemacht. Wir holen eine information aus dieses Felt mit %Subst.

Nun haben wir eine neue Version von die third-party software. Das Felt ist nun Daten Art BLOB, Feld Länge 15728632.

RPG ignoriert das Felt. Selbst mit SQL gehts nicht. Er zeigt nur '*POINTER' (auch DSPPFM zeigt '*POINTER').
Ich habe auf internet etwas gefunden wie 'select cast(left(Blobfelt, 500) as varchar(500)) from Datei'. Aber auch das klapt nicht (error SQL0461 'CAST from BLOB to CHARACTER not supported').

Wir sind mit dem ISeries auf V5R2M0.

Jemand eine Idee?

Vielen Dank im Voraus !

Fuerchau
08-12-05, 12:26
Du musst deinen Trigger als SQL-Trigger neu machen, da ILERPG native auf LOB's nicht zugreifen kann !
Siehe auch:
http://publib.boulder.ibm.com/infocenter/iseries/v5r3/topic/rzajp/rzajpirpglobhost.htm?resultof=%22%62%6c%6f%62%22%2 0%22%72%70%67%22%20

janwijnants
08-12-05, 14:58
Ein SQL-trigger kan ja auf ein BLOB Felt zugreifen.

Ich habe ein kleines Experiment dazu gemacht:

CREATE TABLE WIJNANJ/BLT1 (SEQN DECIMAL (15 , 0) NOT NULL WITH
DEFAULT, BLO1 BLOB (1k ) NOT NULL WITH DEFAULT)

CREATE TABLE WIJNANJ/BLT2 (
BLO1 BLOB (1k ) NOT NULL WITH DEFAULT)

create trigger jwtrg1
after insert on wijnanj/blt1
referencing new row as newblt1
for each row mode db2row
insert into wijnanj/blt2 values(blo1)

INSERT INTO WIJNANJ/BLT1 VALUES(1, blob('x1'))

mit diesen Trigger kan ich diesen Blob in eine andere Datei kriegen,
ABER, es ist noch immer ein Blob. Wie kan ich zum Beispiel im Trigger rauskriegen das die Wert von der Blob mit ein 'x' beginnt?