Выбрать главу

единицей данных.

Получает предельно допустимый размер памяти для 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,