PDA

View Full Version : CLOB in das IFS schreiben



Seiten : [1] 2 3

mk
18-05-20, 13:09
Hallo zusammen,

eigentlich eine simple Aufgabe, aber es will mir nicht gelingen.

Ich möchte eine CLOB Datei ( soll später als hmtl Anhang per mail versendet werden )
in das IFS schreiben



dcl-c q const('''');
dcl-s aString varchar(200);
dcl-s aHtmlString varchar(10000) ;
dcl-s clob sqltype(CLOB:10000) ;

dcl-s aHtmlMailFile sqltype(clob_file) ;
dcl-s aHtmlMailFilePath varchar(100) inz('/home/username/atesthtmlfile.html') ;

do
.. fetch ...
aHtmlString += aString;
enddo


clob_data =aHtmlString;
clob_len =%len(%trim(aHtmlString));


// SQL CLOB setzen

aHtmlMailFile_Name = %trim(aHtmlMailFilePath);
aHtmlMailFile_NL = %len(%trim(aHtmlMailFile_Name));
aHtmlMailFile_FO = SQFOVR;

// IFS Datei anlegen
exec sql values(:clob) into : aHtmlMailFile ;




Soweit klappt das. Die Datei wird auf dem IFS angelegt.

Allerdings sind die Dateninhalte nicht lesbar.

Weiß jemand welche CCSIDs verwendet werden müssen
damit eine html Datei gesendet werden kann ?

Gruß an alle
Michael

manuel.marcos
18-05-20, 13:30
<code>
Wenn du mit *HEX unterwegs bist, kann es auch helfen den Job unter einer CCSID mit Konvertierung laufen zu lassen, z.B. 273..

<code>Oder wie sieht aus wenn du aHtmlString mit ccsid(*utf8) definierst?</code></code>

Fuerchau
18-05-20, 13:47
Da fehlt nochdie CCSID:
<code><code>aHtmlMailFile sqltype(clob_file) ccsid(nnn);

</code></code>nnn=1208 = UTF8
nnn=1252 = Windows-ANSI

mk
18-05-20, 13:48
Hallo,
der Job läuft unter 273 und aHtmlString mit ccsid(*utf8) hat auch nichts ergeben.

mk
18-05-20, 13:54
Hallo,

dem System ist das egal was ich bei der aHtmlMailFile sqltype(clob_file) angebe.

Wenn ich mir die Attribute ansehe steht da immer 273 drin.

Art . . . . . . . . . . . . . . . . . : STMF

Eigner . . . . . . . . . . . . . . . . : KRAUTSCHEI
Systemobjekt ist aktiv . . . . . . . . : Lokal
Zusatzspeicherpool . . . . . . . . . . : 1
Objektüberlauf . . . . . . . . . . . : Nein

CCSID . . . . . . . . . . . . . . . . : 273
Verdeckte Datei . . . . . . . . . . . : Nein
PC-Systemdatei . . . . . . . . . . . . : Nein
Lesezugriff . . . . . . . . . . . . . : Nein

Zu archivieren (PC) . . . . . . . . . : Ja
Zu archivieren (System) . . . . . . . : Ja

manuel.marcos
18-05-20, 14:10
lösche die datei mal vorab, falls schon existent.. wenn du dann den clob mit ccsid(*utf8) definierst, alles andere auf standard. wie siehts dann aus?
bei nem kleinen test hier bei mir, stand mein blabla drin..


dcl-c q const('''');
dcl-s aString varchar(200);
dcl-s aHtmlString varchar(10000) ;
dcl-s clob sqltype(CLOB:10000) ccsid(*utf8);

dcl-s aHtmlMailFile sqltype(clob_file) ;
dcl-s aHtmlMailFilePath varchar(100) inz('/home/username/atesthtmlfile.html');

aHtmlString = 'blabla';

clob_data =aHtmlString;
clob_len =%len(%trim(aHtmlString));

aHtmlMailFile_Name = %trim(aHtmlMailFilePath);
aHtmlMailFile_NL = %len(%trim(aHtmlMailFile_Name));
aHtmlMailFile_FO = SQFOVR;

exec sql values(:clob) into : aHtmlMailFile ;

mk
18-05-20, 14:21
Hi
so wie du habe ich es auch jetzt gemacht.

Trotzdem hat die IFS Datei die CCSID 273 und die Daten sind im Browser nicht lesbar.
Die Inhalte sieht man zwar mit dem EDTF aber das ist ja etwas anders.

manuel.marcos
18-05-20, 14:24
Was heißt denn nicht lesbar? Ist da vlt. ungültiger HTML Code drin?
Ich kann bei mir den Inhalt mit Notepad++ und auch per Browser anzeigen lassen.

camouflage
18-05-20, 14:34
Ich hab's auch nachvollzogen. Gleiches Resultat wie bei Manuel. Unter welcher CCSID läuft denn dein Job?

mk
18-05-20, 14:58
Anzeige mit notepad++
574

Anzeige im Browser
575

Der Job läuft mit 273.

Das der HTML code nicht ganz valide ist, das kann schon sein, sollte aber auch
nicht das Problem sein.