Как выбрать часть поля BLOB в Oracle? - PullRequest
6 голосов
/ 05 декабря 2009

У меня есть таблица в Oracle, которая хранит файлы в виде байтовых массивов в поле BLOB. Я хочу, чтобы мой клиент мог загружать сохраненный файл небольшими порциями (в отличие от одновременной загрузки всего файла), чтобы я мог отображать индикатор выполнения.

Как мне написать запрос Oracle, который извлекает только часть содержимого поля BLOB? Я предполагаю, что это будет что-то вроде этого:

SELECT PARTOF(BLOBFIELD, 1000, 2000) AS CHUNK FROM tbl WHERE ID = 1

если я хочу получить 1000 байтов из BLOBFIELD, начиная с байта 2000.

В качестве дополнительного вопроса, есть ли проблемы с производительностью? Если Oracle должна загрузить все поле BLOB в память, чтобы вернуть его часть, то это не очень хорошая идея.

1 Ответ

6 голосов
/ 05 декабря 2009

Можете ли вы использовать DBMS_LOB.READ (lob_loc, сумма, смещение, буфер) ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...