Базы данных Oracle - статьи

         

Тип XDBURITYPE для работы с ресурсами


Для работы с ресурсами репозитария можно использовать системный подтип XDBURITYPE абстрактного типа URITYPE. В частности, методы типа XDBURITYPE позволяют извлекать из репозитария содержимое ресурсов.

Пример определения длины файла /public/OracleXML.doc:

SELECT DBMS_LOB.GETLENGTH ( XDBURITYPE ( '/public/OracleXML.doc' ).GETBLOB ( ) ) AS bytes FROM dual ;

Результат:

BYTES ---------- 504320

Таким же образом можно извлечь большой файл (содержимое, а не длину) в переменную программы.

Одно из применений типа XDBURITYPE - дать возможность ссылаться на данные в репозитарии XBM DB из полей обычных таблиц.

Пример:

CREATE TABLE projects AS SELECT 1 AS pid , XDBURITYPE ( '/public/OracleXML.doc' ) AS description FROM dual ;

SELECT DBMS_LOB.GETLENGTH ( p.description.GETBLOB ( ) ) AS bytes FROM projects p;

Получим:

BYTES ---------- 504320

Обратите внимание, что сослаться на файл в репозитарии из БД можно и через тип HTTPURITYPE, однако в этом случае в ссылке появится имя компьютера и номер порта - признаки, внешние по отношению в содержимому БД, неконтролируемые средствами БД и, в отличие от ссылок извне, по сути ненужные.



Содержание раздела