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

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

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

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

FILECLOSEALLQ

Метод FILECLOSEALL() закрывает все объекты BFILE.

DBMS_L0B.FILECLOSEALL;

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

FILECLOSEALLO.

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

UNOPENED_FILE Файлы не были открыты для данной сессии.

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

FILEEXISTSO

Метод FILEEXISTS() проверяет, существует ли файл.

□ DBMS_L0B.FILEEXISTS(

b file IN BFILE

) RETURN INTEGER;

где b file - это BFILE, который указывает на внешний файл.

FILEEXISTSO возвращает

■ 0, если файл не существует.

■ 1, если файл существует.

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

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

VALUE_ERROR Параметр b file равен NULL.

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

NOPRIV_DIRECTORY У вас нет привилегий доступа к каталогу.

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

FILEGETNAMEO

Метод FILEGETNAME() возвращает каталог и имя файла для BFILE.

□ DBMS_L0B.FILEGETNAME(

b file IN BFILE,

directory OUT VARCHAR2,

filename OUT VARCHAR2

);

где

■ b file является указателем на файл;

■ directory является папкой, в которой хранится файл;

■ filename является именем файла.

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

FILEGETNAMEO.

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

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

INVALID_ARGVAL Параметры directory или filename равны NULL.

FILEISOPENO

Метод FILEIS0PENO проверяет, открыт ли файл. Вам в своих программах

следует использовать более новую процедуру IS0PEN() для проверки того,

что файл открыт, поскольку корпорация Oracle не планирует в дальнейшем

поддерживать старый метод FILEIS0PENO. Метод FILEISOPEN( ) здесь

рассматривается только с целью понять, как работают более старые программы.

508 Глава 14

□ DBMS_L0B.FILEISOPEN(

b file IN BFILE

) RETURN INTEGER;

где b file - указатель на файл.

FILEISOPENO возвращает

■ 0, если файл не открыт;

■ 1, если файл открыт.

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

FILEISOPENO.

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

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

N0PRIV_DIRECTORY У вас нет привилегий для доступа к каталогу.

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

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

FILEOPEN0

Метод FILE0PEN( ) открывает файл. Вам следует использовать в своих программах

более новую процедуру OPEN О для открытия файлов, поскольку

корпорация Oracle не планирует в дальнейшем поддерживать старую процедуру

FILE0PEN(). Описание FILE0PEN( ) здесь приводится только для понимания

того, как работают более старые программы.

□ DBMS_L0B.FILEOPEN(

b file IN OUT NOCOPY BFILE,

open_mode IN BINARY_INTEGER := DBMS_L0B.FILE_READONLY

);

где

■ b file является указателем на файл;

■ open_mode указывает режим открытия; единственный режим открытия

- это DBMS_L0B. FILE_READONLY, который показывает, что из файла

можно только читать.

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

FILE0PENO.

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

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

INVALID_ARGVAL Параметр open_mode не установлен в DBMS_L0B. FILE_READ0NLY.

0PEN_T00MANY Сделана попытка открыть более нем SESSI0N_MAX_0PEN_FILES файлов,

где SESSI0N_MAX_0PEN_FILES является начальным параметром

базы данных, устанавливаемым администратором базы данных.

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

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

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

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

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

FREETEMPORARY()

Метод FREETEMPORARY( ) освобождает временный L0B из временного табличного

пространства пользователя по умолчанию. Есть две версии

FREETEMPORARY():

□ DBMS_L0B.FREETEMPORARY (

lob IN OUT NOCOPY BLOB

);

DBMS_L0B.FREETEMPORARY (

lob IN OUT NOCOPY CLOB/NCLOB CHARACTER SET ANY_CS

);

где lob - это большой объект, который нужно освободить.

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

FREETEMP0RARYO.

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

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

GETCHUNKSIZEO

Метод GETCHUNKSIZEO возвращает размер блока памяти (chunk), используемый

при чтении и записи данных L0B (является единицей данных). Есть

две версии GETCHUNKSIZE():

□ DBMS_LOB.GETCHUNKSIZE(

lob IN BLOB

) RETURN INTEGER;

DBMS_L0B.GETCHUNKSIZE(

lob IN CLOB/NCLOB CHARACTER SET ANY_CS

) RETURN INTEGER;

где lob - это LOB, для которого нужно получить размер блока.

GETCHUNKSIZEO возвращает