msgbartop
Блог Oracle разработчика
msgbarbottom
foxbase

14.08.2010 Способ борьбы с ORA-04061 в приложениях

Ошибка ORA-04061 обычно возникает у пользователя в приложениях на основе Oracle Database в том случае, если разработчик или DBA выполнил перекомпиляцию какого либо PL/SQL пакета. Если пользователь через функцию приложения обращается к этому PL/SQL пакету, то он получит исключение ORA-04061: (далее…)

13.08.2010 Изменение уникального ключа в Oracle

Если вы создали уникальный ключ для вашей таблицы в Oracle и вам требуется его изменить, то сделать это проще всего удалением старого уникального ключа и созданием нового. Здесь вас может подстерегать одна небольшая неприятность. (далее…)

17.06.2010 Кто блокирует запись таблицы Oracle?

Такой вопрос возникает у любого разработчика многопользовательских приложений на основе сервера Oracle. К сожалению, точно ответить на вопрос, какой именно пользователь заблокировал конкретную запись конкретной таблицы не представляется возможным. По крайней мере, автору такой способ неизвестен. На этот вопрос можно ответить только с некоторой долей вероятности. К сожалению, сервер Oracle не предоставляет информации о том, какая сессия заблокировала запись в таблице. Такая информация может быть получена только для рассматриваемой таблицы, а не конкретной записи. Но все же посмотрим, что можно получить в практическом смысле для разработки наших приложений. (далее…)

10.06.2010 Временные таблицы Oracle

Временные таблицы Oracle (global temporary table) это хороший инструмент для быстрого выполнения сложных вычислительных операций. Как следует из их названия это действительно таблицы, данные в которых хранятся временно, а именно существуют только во время жизни сессии пользователя. Операции с временными таблицами могут выполняться намного быстрее операций с обычными таблицами. (далее…)

27.04.2010 Сортировка индексных массивов Oracle PL/SQL

Применение индексных массивов в Oracle PL/SQL нами уже обсуждалось в статьях Индексные массивы в Oracle PL/SQL и PL/SQL и Java. Кто быстрее? 
В этой статье поговорим о различных методах сортировки индексных массивов.  (далее…)

31.03.2010 PL/SQL и Java. Кто быстрее?

Известно, что сервер Oracle способен выполнять Java код, что может добавить определенные преимущества вашему приложению. Однако многие разработчики не используют эту возможность по разным причинам. Одним из основных является то обстоятельство, что PL/SQL это очень развитый язык программирования и, самое главное, он напрямую поддерживает доступ к данным через встроенный SQL. В этой связи применение Java на стороне сервера не выглядит очень оправданным. Однако, если требуется выполнение большого количества математических операций, то наш взор может быть обращен в сторону Java с вопросом, а не позволит ли код на Java выполнять математические и другие операции, не связанные с обращением напрямую к базе данных, быстрее, чем аналогичный код на PL/SQL? Если это так, то некоторые вычислительные  функции есть смысл переписать на Java, ускорив выполнение критичных участков кода наших приложений.  (далее…)

29.03.2010 Индексные массивы в Oracle PL/SQL

Язык программирования PL/SQL, предназначенный для программирования серверной части приложений, является очень мощным инструментов в умелых руках. Одним из интереснейших инструментов эффективного программирования являются такие представители коллекций PL/SQL как индексные таблицы, или ассоциативные массивы.  Одним из основных применений индексных таблиц, на мой взгляд, является кэширование справочных таблиц приложений для быстрого доступа к часто используемым данным. Быстрый доступ будет автоматически обеспечиваться благодаря поиску записи в индексной таблице по индексному ключу. В этом случае поиск будет выполняться в памяти максимально быстро. (далее…)

17.02.2010 Компрессия LOB (CLOB, BLOB) в Oracle

Часто может возникнуть задача упаковки больших объектов Oracle CLOB, BLOB для их более компактного хранения или для иных целей. При этом может потребоваться считывать упакованные большие объекты CLOB, BLOB в клиентских приложениях на Java. Упаковывать же большие объекты желательно на стороне сервера на PL/SQL.  (далее…)

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

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

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

На практике часто требуется генерировать случайные числа в заданном диапазоне. Рассмотрим наиболее естественный  способ сделать это на PL/SQL.

Для генерации случайных чисел на PL/SQL существует замечательный пакет dbms_random. Этот пакет содержит все необходимые нам функции. (далее…)