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?