Oracle Update BLOB

by

Updating a BLOB (Binary Large Object) in Oracle can be achieved using several methods.

1. Updating with a Buffer (Direct Data):

UPDATE your_table
SET your_blob_column = :new_blob_data
WHERE primary_key_column = :key_value;

2. Updating by Selecting a LOB from Another Table or Source:

UPDATE your_table
SET your_blob_column = (SELECT source_blob_column FROM source_table WHERE some_condition)
WHERE primary_key_column = :key_value;

3. Updating with EMPTY_BLOB():

UPDATE your_table
SET your_blob_column = EMPTY_BLOB()
WHERE primary_key_column = :key_value;

4. Updating a BLOB field with the contents of a file:

CREATE DIRECTORY MY_DIR AS '/directory/subdirectory';

DECLARE
	src_bfile BFILE := BFILENAME('MY_DIR', 'filename.txt');
	dest_blob BLOB;
BEGIN
	SELECT BLOBCOL into dest_blob FROM BLOBTABLE WHERE ROWID = 'ROWIDVALUE';

	DBMS_LOB.OPEN(src_bfile, DBMS_LOB.LOB_READONLY);
	DBMS_LOB.LoadFromFile( DEST_LOB => dest_blob,
	SRC_LOB => src_bfile,
	AMOUNT => DBMS_LOB.GETLENGTH(src_bfile) );
	DBMS_LOB.CLOSE(src_lob);

	COMMIT;
END;
/

And you can use DBBlobEditor to Batch update Oracle table BLOB data from files.

See also: Oracle BLOB, View and edit BLOB data stored in Oracle.