Эмуляция Oracle Global Temporary Table

Зачем эмулировать Global Temporary Table, если этот механизм и так встроен в базу данных Oracle? Действительно, незачем, если ваше приложение полностью построено с применением только одного клиента, который может быть написан на чем угодно. Однако может возникнуть ситуация, в которой ваше основное приложение использует результаты вычислений другого приложения, которое записывает выходные данные в некоторую таблицу, данные из которой и должно считать основное приложение. Например, отдельное не визуальное приложение на Java производит некоторые сложные вычисления, результаты которого необходимо отобразить пользователю в визуальном приложении на Oracle Forms. Причем эти данные являются временными, т.е. необходимыми только один раз для визуального отображения пользователю. Налицо необходимость организации взаимодействия между разными приложениями, работающими в разных сессиях.

Continue reading Эмуляция Oracle Global Temporary Table

Генерация случайных чисел в заданном диапазоне

На практике часто требуется генерировать случайные числа в заданном диапазоне. Рассмотрим наиболее естественный способ сделать это на PL/SQL.Для генерации случайных чисел на PL/SQL существует замечательный пакет dbms_random. Этот пакет содержит все необходимые нам функции. Прежде всего любой генератор случайных чисел на любом языке программирования необходимо инициализировать некоторым случайным числом. Это необходимо для того, чтобы не получить в следующей сессии точно такой же набор «случайных» чисел. Инициализация генератора выполняется при помощи функции dbms_random.initialize(n), где n – некоторое случайное число, seed, характеризующее распределение случайных чисел, которые будут получаться в дальнейшем после инициализации.

Continue reading Генерация случайных чисел в заданном диапазоне

Отладка кода в Oracle

В этой статье предлагается простой и эффективный способ отладки серверной и клиентской частей приложений Oracle. Способ не претендует на полноту и не призван заменить собой известные способы отладки, однако может быть полезен при отладке бизнес логики приложений.Этот способ отладки основан на установке простых точек отладки без остановки выполнения приложений. В каждом случае в требуемом месте кода приложения вызывается специальная процедура, в качестве параметра которой передается строка с данными отладки.

Continue reading Отладка кода в Oracle

Oracle Advanced Queuing Notification

Oracle Advanced Queuing Notification представляют собой механизм уведомлений, который срабатывает при получении сообщений. В качестве получателя уведомления может использоваться E-Mail, HTTP POST, OCI callback function, Java Messaging Service (JMS) или вызов PL/SQL процедуры. Одним из основных применений уведомлений является немедленная обработка сообщения при его поступлении в заданную очередь. В этом случае выполняется извлечение (Dequeuing) сообщения из очереди при помощи PL/SQL процедуры или JMS.

Continue reading Oracle Advanced Queuing Notification

Автономные транзакции Oracle

Любая база данных построена на транзакцияхOracle database в этом смысле не исключение. Любые операции с данными в таблицах Oracle явно или неявно происходят внутри транзакций. Однако база данных Oracle начиная с восьмой версии имеет дополнительный механизм работы с транзакциям, называемый автономными транзакциями.

Continue reading Автономные транзакции Oracle