OK , also hier mal meine Lösung:
Delphi-Quellcode:
procedure[i] XYZ[/i]([i]PQR[/i]);
var
LOB: TLOBLocator;
qry: TOracleQuery;
begin
try
qry := TOracleQuery.Create(..);
LOB := TLOBLocator.Create([i]SESSION[/i], otCLOB);
try
with qry
do
begin
Session := [i]SESSION[/i];
// [i]SPALTE[/i] ist das (C)LOB Feld
// Füllen des Feldes mit einen leeren clob
SQL.Text := '
UPDATE [i]TABELLE[/i] SET [i]SPALTE[/i]= empty_clob() WHERE id =' [i]ID[/i] +
'
returning [i]SPALTE[/i] into :[i]SPALTE[/i]';
// Variable deklarieren
DeclareVariable('
[i]SPALTE[/i]', otClob);
// Variable als Lobverweis setzen
SetComplexVariable('
[i]SPALTE[/i]', LOB);
end;
// Statemant ausführen
qry.Execute;
// Verweis aus Lobinhalt übergeben und aus Datei laden
LOB.AsString := sRtm;
// Alternativ: LOB.LoadfromFile(String);
// Committen :-)
DBAnmeldung.DB.Commit;
finally
qry.free
LOB.free
except
// Sprich zu mir!
on E:
Exception do
begin
raise Exception.create(self.ClassName + '
DB-Eintraungg schlug fehl! ' + '
' + E.
Message);
// Im Fehlerfalls -> Rückwärtsrolle
DBAnmeldung.DB.Rollback;
end;
end;
MfG
Kai Hennigs