Para actualizar un BLOB
más de 16383 bytes, se puede usar algo como esto (cada línea tiene un número par de dígitos hexadecimales hasta 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;
ahora el límite es solo el tamaño de la declaración, que puede imponer el entorno operativo (por ejemplo, SQLPlus, Pro*C, VB, JDBC...). Para sentencias muy grandes, PL/SQL también puede fallar con el error "fuera de los nodos de Diana".