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

На практике часто требуется генерировать случайные числа в заданном диапазоне. Рассмотрим наиболее естественный способ сделать это на 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

Блокировки Oracle при неиндексированных внешних ключах

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

Continue reading Блокировки Oracle при неиндексированных внешних ключах