■ размер блока в байтах для 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(