У меня есть таблица в Oracle, которая хранит файлы в виде байтовых массивов в поле BLOB. Я хочу, чтобы мой клиент мог загружать сохраненный файл небольшими порциями (в отличие от одновременной загрузки всего файла), чтобы я мог отображать индикатор выполнения.
Как мне написать запрос Oracle, который извлекает только часть содержимого поля BLOB? Я предполагаю, что это будет что-то вроде этого:
SELECT PARTOF(BLOBFIELD, 1000, 2000) AS CHUNK FROM tbl WHERE ID = 1
если я хочу получить 1000 байтов из BLOBFIELD, начиная с байта 2000.
В качестве дополнительного вопроса, есть ли проблемы с производительностью? Если Oracle должна загрузить все поле BLOB в память, чтобы вернуть его часть, то это не очень хорошая идея.