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 возвращает