I'm successfully updating a BLOB field like that:

const char* h_updateStatement = "update T set val = EMPTY_BLOB() where id='xyz' returning val into :x0";
const char* h_valP = [pointer to some string];
unsigned int h_valLength = [length of string where h_valP points to]
OCIBlobLocator* valLocator;
EXEC SQL ALLOCATE :h_valLocator;
EXEC SQL PREPARE updateStatement FROM :h_updateStatement;
EXEC SQL EXECUTE updateStatement USING :h_valLocator;
EXEC SQL LOB WRITE ONE :h_valLength FROM :h_valP INTO :h_valLocator;

This works well, except for an empty string. (i.e. h_valLength equals to 0) Any ideas how to clear a blob field? (it's set to NULL of course) I'm using Oracle9.

Many thanks and kind regards,