Hallo liebe Gemeinde,
ich muss wieder nach eurem Rat fragen!
Mein Aufgabe diesmal lautet:
1) Mail abfangen, Signatur prüfen, Infos herausfiltern, Attachments zippen.
2) Connect an Oracle per ODBC auf ein fremde Kiste (Suse 9.x)
3) Datensatz anlegen
4) Attachments in ein Oracle-Feld hochladen.
Bis Punkt 3 kein Problem mehr (hat genug Schweiß und Zeit gekostet
)
Bei Punkt 4 keine Ahnung wie so was zu machen ist!
Bevor ich das Ganze in LS geschrieben habe, habe ich mit SQLPlus probiert. Da könnte ich wie folgt die Datei hochladen:
select count(rowid) from gutachtenauftrag where ktan = %KTAN% and vsnr = '%VSNR%' and adsc = '%ADSC%' and zl_gutachten_pro_vsnr = %ZLGUT%;
select zl_antrag, zl_auftrag, zl_gutachten from gutachtenauftrag where ktan = %KTAN% and vsnr = '%VSNR%' and adsc = '%ADSC%' and zl_gutachten_pro_vsnr = %ZLGUT%;
insert into dok_ablage (ktan, vsnr, adsc, zl_antrag, zl_auftrag, txnr_modul, zl_modulsatz, zl_dstelle_ableger, zl_mitarb_ableger, typ_dok, name_dok, inhalt_dok) values ('%KTAN%', '%VSNR%', '%ADSC%', v_zlantrag, v_zlauftrag, 'GA', v_zlgutachten, 0, 0, 'zip', '%GAFILE%', empty_blob()) returning inhalt_dok into binfile;
bf := BFILENAME('LOBDIR','%GAFILE%');
if DBMS_LOB.FILEEXISTS(bf) = 1 THEN
if DBMS_LOB.FILEISOPEN(bf) = 0 THEN
DBMS_LOB.FILEOPEN(bf,DBMS_LOB.FILE_READONLY);
if DBMS_LOB.FILEISOPEN(bf) = 0 THEN
raise_application_error(-20001,'file not open');
end if;
else
raise_application_error(-20001,'file allready open');
end if;
len := DBMS_LOB.GETLENGTH(bf);
DBMS_LOB.LOADFROMFILE(binfile,bf,len);
DBMS_LOB.FILECLOSE(bf);
commit;
else
raise_application_error(-20001,'Error reading file');
end if;
Naja, scheint aber jetzt in LS keine Möglichkeit zu geben die Classe DBMS_LOB zu benützen....
Hat einer von euch schon Erfahrung in der Richtung gesammelt?
Ist das überhaupt möglich?