Can you modify the TOracleDataset to include a property which would allow the dataset to automatically populate CLOB / BLOB fields with Empty_Clob() / Empty_Blob() even if the TMemoField / TBlobField value is NULL?
Maybe add an "InitializeLobLocators" entry to the OracleDictionary. Default it to false, which follows the current behavior where empty memos produce NULL CLOB entries, but where the true value causes empty memos to produce EMPTY_CLOB() entries.