I have tried:
UPDATE "SCHEMA".TABLE SET LOB_COLUMN = (SELECT LOB_COLUMN FROM "SCHEMA".TABLE)
I have tried:
CREATE OR REPLACE PROCEDURE COPY_LOB_DATA IS
OLD_BLOB BLOB;
NEW_BLOB BLOB;
BLOB_LENGTH NUMBER;
BEGIN
SELECT LOB_COLUMN INTO OLD_BLOB FROM SCHEMA.TABLE WHERE OLD;
SELECT LOB_COLUMN INTO NEW_BLOB FROM SCHEMA.TABLE WHERE NEW;
SELECT dbms_lob.length(NEW_BLOB) INTO BLOB_LENGTH FROM DUAL;
dbms_lob.TRIM(OLD_BLOB,1);
dbms_lob.copy(OLD_BLOB,NEW_BLOB,BLOB_LENGTH);
if (dbms_lob.compare(OLD_BLOB,NEW_BLOB) = 0) THEN
commit;
ELSE
rollback;
END IF;
END;
and I've tried using cursors. Each method seems to work four times out of five, but every so often we'll encounter a field that just won't budge. the largest of these would be around fifty megs, but usually it's one of the smaller ones.

EXCEPTIONblock to your PL/SQL to catch? – Phil Oct 8 '12 at 20:47