единицей данных.
Получает предельно допустимый размер памяти для LOB.
Получает длину данных, хранящихся в LOB.
Возвращает начальную позицию символов или байтов, в которой
обнаружено n-е вхождение шаблона в данных LOB.
Данные читаются из LOB, начиная со смещения.
Проверяет, открытии LOB в настоящий момент.
Большие объекты 501
Таблица 14.1. Методы пакета DBMS_L0B (окончание)
Метод Описание
ISTEMPORARY(lob)
LOADFROMFI LE( целевой Job,
исходный_ЬШе, колич,
смещ_целевого, смещ_ис-
ходного)
LOADB LOBFROMFILE(целевой_
lob, исходный_ЬЕИе, колич,
смещ_целевого, смещ_
исходного)
LOADCLOBFROMFILE(целевой,
lob, MCxoflHbm_bfile, колич,
смещ_целевого, смещ_
исходного)
OPEN(lob, режим_открытия)
READ(lob, колич, смещ,
буфер)
SUBSTR(lob, колич, смещ)
TRIM(lob, новая_длина)
WRITE(lob, колич, смещ,
буфер)
WRITEAPPEND(lob, колич,
буфер)
Проверяет, указывает ли локатор на временный LOB.
Загружает данные, полученные из исходный_ЬА1е в целе-
вой_1оЬ, начиная со смещений в указанном количестве символов
или байтов. HcxoflHbiH_bfile - это BFILE, который указывает
на внешний файл.
Метод loadfromfiLE() достаточно старый, и вам следует
использовать более высокопроизводительные методы
L0ADBL0BFR0MFILEO И LOADCLOBFROMFILE().
Загружает данные, полученные из исходный_ЬА1е в целе-
вой_1оЬ, начиная со смещений в указанном количестве байтов.
Исходный_ЬА1е - это bfile, который указывает на внешний
файл.
LOADB lob fromfi LE() имеет большее быстродействие по
-сравнению с loadfromfile( ) с использованием blob.
Загружает данные, полученные из исходный_ЬА1е в целе-
войJob, начиная со смещений в указанном количестве символов.
Исходный_bfile - это BFILE, который указывает на
внешний файл.
LOADCLOBFROMFILE() имеет большее быстродействие по
сравнению с LOADFROMFILE() с использованием CLOB/
NCLOB.
Открывает LOB в указанном режиме, который может быть
установлен в
* DBMS_LOB.FILE_READOI\ILY, который показывает, что из
LOB можно только читать,
* DBMS_LOB.FILE_READWRITE, который показывает, что из
LOB можно читать и в него можно писать.
Читает данные из LOB и сохраняет в переменной буфер, начиная
с заданного смещения в LOB и указанном количестве
символов или байт.
Читает часть значения LOB, начиная с указанного смещения
в указанном количестве символов или байт.
Урезает значение LOB до указанной (более короткой) длины.
Записывает данные из переменной буфер в LOB, начиная с
указанного смещения в LOB в указанном количестве символов
или байт.
Записывает данные из буфера в конец LOB, начиная с указанного
смещения в LOB в указанном количестве символов
или байт.
502 Глава 14
В следующих разделах мы более подробно рассмотрим некоторые из
методов, показанных в предыдущей таблице. Все методы DBMS_L0B можно
посмотреть в справочном руководстве Oracle Database PL/SQL Packages and
Types Reference (руководство по пакетам и типам PL/SQL базы данных
Oracle), публикуемым корпорацией Oracle.
APPEND()
Метод APPEND( ) добавляет данные из исходного L0B в конец целевого L0B.
Существует две версии APPEND():
□ DBMS_LOB.APPEND(
dest_lob IN OUT NOCOPY BLOB,
src_lob IN BLOB );
DBMS_L0B.APPEND(
dest_lob IN OUT NOCOPY CLOB/NCLOB CHARACTER SET ANY_CS, src_lob IN CLOB/
NCLOB CHARACTER SET dest_lob%CHARSET
);
где _ *
■ dest_lob является целевым LOB, к которому будут добавлены данные;
■ src_lob является исходным L0B, из которого данные читаются;
■ CHARACTER SET ANY_CS означает, что данные в dest_lob могут быть в
любом наборе символов;
■ CHARACTER SET dest_lob%CHARSET является набором символов для dest_
lob.
В следующей таблице перечислены исключения, создаваемые APPEND().
Исключение Создаётся в случае
VALUE_ERROR Или destjob, или srcjob равен NULL.
CLOSEQ
Метод CL0SEO закрывает открытый ранее L0B. Существует три версии
CLOSEQ:
□ DBMS_L0B.CL0SE(
lob IN OUT NOCOPY BLOB
);
DBMS_L0B.CL0SE(
lob IN OUT NOCOPY CLOB/NCLOB CHARACTER SET ANY_CS
);
DBMS_L0B.CL0SE(
lob IN OUT NOCOPY BFILE
);
где lob является LOB, который необходимо закрыть.
Большие объекты 503
Метод COMPARE0
C0HPARE() сравнивает данные, хранящиеся в двух L0B, начиная с указанных
смещений и в указанном количестве символов или байт. Существует три
версии COM PAR Е():
□ DBMS_LOB.COMPARE(
lobl IN BLOB,
lob2 IN BLOB,
amount IN INTEGER 4294967295,
o ffs e t1 IN INTEGER := 1,
offset2 IN INTEGER := 1
) RETURN INTEGER;
DBMS_L0B.C0MPARE(
1оЫ IN CLOB/NCLOB CHARACTER SET ANY_CS,
lob2 IN CLOB/NCLOB CHARACTER SET lob_1%CHARSET,
amount IN INTEGER := 4294967295,
o ffs e t1 IN INTEGER := 1,
offset2 IN INTEGER := 1
) RETURN INTEGER; _ .
DBMS_L0B.C0MPARE(
lobl IN BFILE,
lob2 IN BFILE,
amount IN INTEGER,