Per aggiornare un BLOB
più lungo di 16383 byte potrebbe essere utilizzato qualcosa di simile (ogni riga ha un numero pari di cifre esadecimali fino a 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;
ora il limite è solo la dimensione dell'istruzione, che potrebbe essere imposta dall'ambiente operativo (es. SQLPlus, Pro*C, VB, JDBC...). Per istruzioni molto grandi, PL/SQL potrebbe anche non riuscire con l'errore "out of Diana nodes".