русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

ОТКРЫТИЕ И ЗАКРЫТИЕ ФАЙЛОВ


Дата добавления: 2013-12-24; просмотров: 1491; Нарушение авторских прав


Во всех операциях модуля UTL_FILE фигурирует понятие описателя файла. Описатель, или логический номер, файла (file handle) – это значение, которое используется в PL/SQL для идентификации файла, подобно идентификатору курсора в модуле DBMS_SQL. Все описатели файлов имеют тип UTL_FILE.FILE_TYPE, они возвращаются функцией FOPEN и передаются как параметры вида IN в другие подпрограммы UTL_FILE.

Функция FOPEN открывает файл на ввод или на вывод. В любой момент времени файл может быть открыт или только на ввод, или только на вывод. Описание FOPEN выглядит следующим образом:

 

function FOPEN (location in varchar2, filename in varchar2, open_mode in

varchar2);

return FILE_TYPE;

 

Каталог, путь к которому указывается, должен существовать на момент выполнения этой функции – FOPEN его не создает. Однако если установить режим OPEN_MODE как ‘w’, то существующий файл будет перезаписываться. Параметры и возвращаемое значение функции FOPEN описаны в следующей таблице:

Таблица 8 Параметры функции FOPEN

Параметр Тип Описание
location varchar2 Путь к каталогу, в котором расположен файл. Если этот каталог не входит в число доступных, то устанавливается UTL_FILE.INVALID_PATH.
filename varchar2 Имя открываемого файла. Если задан режим 'w', то существующий файл перезаписывается.
open_mode varchar2 Используемый режим. Возможные значения: ‘r’ – чтение текста; ‘w’ – запись текста; ‘а’ – добавление текста. Этот параметр не чувствителен к регистру символов. Если установлен режим ‘а’, а файл не существует, то он создается в режиме ‘w’.
Возвращаемое значение UTL_FILE.FILE_TYPE Описатель файла, используемый впоследствии в функциях.

В Oracle8 и выше в модуль UTL_FILE введен дополнительный, переопределенный вариант функции FOPEN:



 

function FOPEN (location in varchar2, filename in varchar2, open_mode in

varchar2, max_linesize in binary_integer);

return FILE_TYPE;

 

Параметры LOCATION, FILENAME и OPEN_MODE ведут себя так же, как и в первом варианте FOPEN, а MAXLINESIZE используется для указания максимального размера строки файла. Диапазон значений: от 1 до 32767. Если это значение не указано, максимальный размер строки устанавливается равным 1024. Если MAXLINESIZE меньше 1 или больше 32767, устанавливается исключительная ситуация UTL_FILE.INVALID_MAXLINESIZE.

После окончания чтения из файла или записи в него этот файл должен быть закрыт с помощью процедуры FCLOSE. В результате освобождаются ресурсы, используемые модулем UTL_FILE для работы с файлом. Описание FCLOSE выглядит следующим образом:

 

procedure FCLOSE (file_handle in out FILE_TYPE);

 

Единственным параметром этой процедуры является описатель файла. Все изменения, которые должны быть записаны в файл, завершаются перед его закрытием. В случае ошибки записи устанавливается UTL_FILE.WRITE_ERROR. Если описатель не идентифицирует корректный открытый файл, то устанавливается UTL_FILE.INVALID_FILEHANDLE.

Зачастую, перед тем как производить операции чтения из файла или записи/перезаписи в файл полезно проверить, открыт ли этот файл. Для этих целей в модуле UTL_FILE предусмотрена функция IS_OPEN. Эта логическая функция возвращает TRUE, если указанный файл открыт, и FALSE, если не открыт. Описание функции IS_OPEN таково:

 

function IS OPEN (file_handle in FILE TYPE)

return boolean;

 

Даже в том случае, когда IS_OPEN возвращает TRUE, при работе с данным файлом могут происходить ошибки операционной системы.

Процедура FCLOSE_ALL модуля UTL_FILE закрывает все открытые файлы. Она предназначена для удаления ставшей ненужной информации, что особенно полезно в обработчиках исключительных ситуаций:

 

procedure FCLOSE_ALL;

Эта процедура не принимает никаких аргументов. Все ожидающие записи изменения сбрасываются на диск перед закрытием файлов. Поэтому в случае ошибки записи FCLOSE_ALL может устанавливать исключительную ситуацию UTL_FILE.WRITE_ERROR.

 



<== предыдущая лекция | следующая лекция ==>
БЕЗОПАСНОСТЬ ОПЕРАЦИОННОЙ СИСТЕМЫ | ФАЙЛОВЫЙ ВЫВОД


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.174 сек.