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

■ размер блока в байтах для BLOB;

■ размер блока в символах для CLOB/NCLOB.

В следующей таблице перечислены исключения, создаваемые

GETCHUNKSIZEO._____________________________________

Исключение______________Создаётся в случае___________ __________________________

VALUE_ERROR Параметр lob равен NULL.

GET_STORAGE_LIMIT()

Метод GET_STORAGE_LIMIT() возвращает максимально допустимый размер

для L0B.

510 Глава 14

□ DBMS_L0B.GET_STORAGE_LIMIT( )

RETURN INTEGER;

GETLENGTHO

Метод GETLENGTHO возвращает размер данных LOB. Есть три версии

GETLENGTHO:

□ DBMS_L0B.GETLENGTH(

lob IN BLOB

) RETURN INTEGER;

DBMS_L0B.GETLENGTH(

lob IN CLOB/NCLOB CHARACTER SET ANY_CS

) RETURN INTEGER;

DBMS_L0B.GETLENGTH(

b file IN BFILE

) RETURN INTEGER;

где

■ lob представляет собой данные BLOB, CLOB или NCLOB, размер которых

нужно получить;

■ b file представляет собой данные BFILE, размер которых нужно получить.

GETLENGTHO возвращает

■ размер в байтах для BLOB или BFILE;

■ размер в символах для CL0B или NCL0B.

В следующей таблице перечислены исключения, создаваемые GETLENGTH().

Исключение______________Создаётся в случае_______ ___________________________

VALUE_ERROR Параметр lob или bfile равен NULL. _________________

INSTR0

Метод INSTR( ) возвращает начальную позицию символов или байтов, в которой

обнаружено n-е вхождение шаблона в данных L0B, начиная со смещения.

Есть три версии INSTR():

□ DBMS_L0B.INSTR(

lob IN BLOB,

pattern IN RAW,

o ffse t IN INTEGER := 1,

n IN INTEGER := 1

) RETURN INTEGER;

DBMS_L0B.INSTR(

lob IN CLOB/NCLOB CHARACTER SET ANY_CS,

pattern IN VARCHAR2 CHARACTER SET lob%CHARSET,

o ffs e t IN INTEGER := 1,

n IN INTEGER := 1

) RETURN INTEGER;

Большие объекты 511

DBMS_LOB.INSTR(

b file IN BFILE,

pattern IN RAW,

offse t IN INTEGER := 1,

n IN INTEGER := 1

) RETURN INTEGER;

где

■ lob представляет собой BLOB, CLOB или NCLOB для чтения из;

■ представляет собой BFILE для чтения из;

■ pattern представляет собой шаблон для поиска в данных L0B; шаблон

является группой байтов RAW для BLOB или BFILE, и символьную строку

VARCHAR2 для CL0B; максимальный размер шаблона 16,383 байт;

■ offset определяет смещение для начала чтения данных из L0B (смещение

начинается с 1);

■ п определяет номер вхождения находимого шаблона в данных.

INSTRO возвращает

■ Смещение начала шаблона (если найдено).

■ Ноль, если шаблон не найден.

■ Null, если

■ Любой из IN параметров равен null или неправильный,

■ offset < 1 или offset > LOBMAXSIZE,

■ n < 1 или n > LOBMAXSIZE.

В следующей таблице перечислены исключения, создаваемые INSTR ().

Исключение Создаётся в случае

VALUE_ERROR Любой из входных параметров равен NULL или неправильный.

UNOPENED_FILE В FILE не открыт.

NOEXIST_DIRECTORY Каталог не существует.

N0PRIV_DIRECTORY Каталог существует, но у вас нет привилегий на доступ к каталогу.

INVALID_DIRECTORY Неправильный каталог.

INVALIDJ3PERATI0N Файл существует, но у вас нет привилегий на доступ к файлу.

IS0PEN()

Метод IS0PEN() проверяет, был ли L0B уже открыт. Есть три версии

IS0PEN():

□ DBMS_L0B.IS0PEN (

lo b IN BLOB

) RETURN INTEGER;

DBMS_L0B.ISOPEN(

lo b IN CLOB/NCLOB CHARACTER SET ANY_CS

) RETURN INTEGER;

512 Глава 14

DBMS_LOB.ISOPEN(

b file IN BFILE

) RETURN INTEGER;

где

■ lob это BLOB, CLOB или NCLOB, который нужно проверить;

■ b file это BFILE, который нужно проверить.

IS0PENO возвращает

■ 0, если L0B не открыт;

■ 1, если L0B открыт.

В следующей таблице перечислены исключения, создаваемые

IS0PENQ.______________________________ _ ____________________________________ _

Исключение Создаётся в случае___________________________________________

VALUE_ERROR Параметр lob или b file равен NULL или неправильный. _____________

ISTEMPORARY0

Метод ISTEMPORARY() проверяет, является ли L0B временным. Есть две версии

ISTEMPORARY():

DBMS_L0B.ISTEMPORARY(

lob IN BLOB

) RETURN INTEGER;

DBMS_L0B.ISTEMPORARY (

lob IN CLOB/NCLOB CHARACTER SET ANY_CS

) RETURN INTEGER;

где

■ lob это LOB, который нужно проверить.

ISTEMPORARYO возвращает

■ 0, если LOB не временный;

■ 1, если L0B временный.

В следующей таблице перечислены исключения, создаваемые

ISTEMPORARYO.

Исключение Создаётся в случае_________ __________________________

VALUE_ERROR Параметр lob равен NULL или неправильный.________________

LOADFROMFILE0

Метод L0ADFR0MFILEO загружает данные, полученные через BFILE в CL0B,

NCL0B или BLOB, начиная со смещений и в указанном объёме символов или

байт Вам следует в своих программах использовать более высокопроизводительные

процедуры L0ADCL0BFR0MFILEO или LOADBLOBFROMFILE(). Обзор

LOADFROMFILE() приводится здесь только для понимания работы более старых

программ.

Большие объекты 513

Есть две версии LOADFROMFILE():

DBMS_LOB.LOADFROMFILE(

dest_lob IN OUT NOCOPY BLOB,

src_bfile IN BFILE,

amount IN INTEGER,

dest_offset IN INTEGER := 1,

src_offset IN INTEGER := 1

);

DBMS_LOB.LOADFROMFILE(