русс | укр

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

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

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

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


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

ВЗАИМОДЕЙСТВИЕ МЕЖДУ СОЕДИНЕНИЯМИ (МОДУЛЬ DBMS_PIPE)


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


ФАЙЛОВЫЙ ВВОД

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

 

procedure GET_LINE (file_handle in FILE TYPE, buffer out varchar2);

 

Когда из файла считывается последняя строка, устанавливается исключительная ситуация NO_DАТА_FOUND. Если строка не помещается в буфер, размер которого указан как фактический параметр, устанавливается VALUE_ERROR. При чтении пустой строки возвращается пустая последовательность символов (NULL). В случае ошибки записи устанавливается UTL_FILE.READ_ERROR. Максимальный размер входной строки составляет 1022 байта (если параметром MАХLINESIZE функции FOPEN не задан другой размер). Параметры процедуры GET_LINE описаны в следующей таблице.

 

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

Параметр Тип Описание
file_handle UTL_FILE.FILE_TYPE Описатель файла, возвращаемый функцией FOPEN. Если описатель некорректен, то устанавливается UTL_FILE.INVALID_FILEHANDLE.
  Продолжение таблицы 11
buffer varchar2 Буфер, в который записывается строка. Если файл не был открыт на чтение (‘r’) то устанавливается UTL_FILE.INVALID_OPERATION.

 

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

В дополнение к средствам чтения таблиц базы данных и записи в эти таблицы в PL/SQL предлагаются два встроенных модуля, предназначенных для взаимодействия между соединениями, или сеансами (sessions). Это модули DBMS_PIPE и DBMS_ALERT. Их можно использовать для обмена сообщениями между сеансами, соединенными с одним и тем же экземпляром базы данных. Эти модули чрезвычайно удобны и выполняют множество полезных функций. В данном разделе детально рассмотрен только модуль DBMS_PIPE, предназначенный для реализации программных каналов базы данных. Модуль DBMS_ALERT, реализующий систему оповещения базы данных подробно описан в [3].



Посредством модуля DBMS_PIPE реализуются программные каналы баз данных (database pipe). Канал базы данных не зависит от операционной системы, и будет работать в любой среде, в которой функционирует ORACLE. Различные сеансы, соединенные с одним и тем же экземпляром ORACLE, могут посылать и получать сообщения по такому каналу. Канал могут использовать несколько сеансов, получающих сообщения, или получателей (readers), и несколько сеансов, посылающих сообщения, или отправителей (writers). При этом сеанс может посылать и получать несколько сообщений. Все эти сеансы могут находиться на разных машинах и работать в различных средах выполнения программ PL/SQL. Все, что требуется от сеансов, – соединиться с одним и тем же экземпляром ORACLE, а также иметь возможность выполнять блоки РL/SQL.

Программные каналы асинхронны – они функционируют независимо от транзакций. После того как сообщение послано по каналу, вернуть его невозможно, даже если был выполнен откат той транзакции, которая выдала сообщение. Следовательно, их можно использовать для реализации автономных транзакций, которые можно завершать или откатывать независимо от родительской транзакции.

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

 



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


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


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

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

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


 


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

 
 

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

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