Um ein BLOB
zu aktualisieren länger als 16383 Bytes kann so etwas verwendet werden (jede Zeile hat eine gerade Anzahl von Hex-Ziffern bis zu 32766):
DECLARE
buf BLOB;
BEGIN
dbms_lob.createtemporary(buf, FALSE);
dbms_lob.append(buf, HEXTORAW('0EC1D7FA6B411DA58149'));
--...lots of hex data...
dbms_lob.append(buf, HEXTORAW('0EC1D7FA6B411DA58149'));
UPDATE MyTable
SET blobData = buf
WHERE ID = 123;
END;
Jetzt ist die Grenze nur die Größe der Anweisung, die durch die Betriebsumgebung (z. B. SQLPlus, Pro * C, VB, JDBC ...) auferlegt werden kann. Bei sehr großen Anweisungen kann PL/SQL auch mit dem Fehler "out of Diana nodes" fehlschlagen.