Я хотел бы проверить, поврежден ли объект BLOB или нет
Это не то, что вы должны делать в базе данных. BLOB - это двоичный файл, который интерпретируется соответствующим клиентским программным обеспечением (Adobe Reader, MS Word и т. Д.). Что касается базы данных, то это черный ящик. Таким образом, ваше приложение должно проверить файл перед его загрузкой в базу данных.
Однако, есть обходной путь. Вы можете построить индекс Oracle Text CONTEXT на своем столбце BLOB. CONTEXT действительно предназначен для свободного текстового поиска документов, но индексация - это способ доказать, что загруженный файл доступен для чтения.
Проблема с индексами CONTEXT заключается в том, что они не являются транзакционными: обычно выполняется фоновое задание, которое индексирует новые документы, но для этой цели вы, вероятно, захотите вызвать CTX_DDL.SYNC_INDEX()
как часть загрузки, чтобы своевременно представить пользователю Обратная связь. Узнайте больше .
Я еще раз повторю, что Text - это обходной путь и дорогой с точки зрения ресурсов базы данных. Сам индекс будет занимать пространство, а процесс индексации требует времени и циклов процессора. Это большие инвестиции, если вы не собираетесь работать с документом в базе данных.