Как стать автором
Обновить
4.5

Oracle *

Система управления базами данных

Сначала показывать
Период
Уровень сложности

Как и зачем я сдавал сертификацию Oracle — Java SE 11 Developer

Время на прочтение5 мин
Количество просмотров14K

Меня зовут Аксёнов Вячеслав и я бэкенд разработчик, пишу на Java/Kotlin, расскажу про то, как я сдавал сертификацию на знания Java SE 11 от Oracle. И какие нюансы я понял в процессе подготовки и сдаче.

Моя история

Oracle Cloud: бесплатный VPS 4 ядра ARM/24ГБ памяти: решаем проблему большого спроса (OCI CLI)

Время на прочтение7 мин
Количество просмотров25K

Очень заманчивая конфигурация была недавно анонсирована в рамках доступа "Всегда бесплатно". К сожалению, "очень быстро разбирают", а именно - сложно запустить экземпляр, постоянно вылазит ошибка “Out of Capacity” (по состоянию на июль 2021 г.). Здесь мы решаем эту проблему, так как Oracle время от времени наращивает ёмкость.

Каждый арендатор получает бесплатно первые 3000 часов условных ЦП и 18 000 ГБ-часов в месяц для создания экземпляров Ampere A1 Compute с использованием конфигурации VM.Standard.A1.Flex (эквивалентно 4 условным ЦП и 24 ГБ памяти).

Читать далее

Эволюция моих SQL запросов

Время на прочтение4 мин
Количество просмотров20K

Всем привет! Я тимлид и Senior Oracle Developer, 12 лет работаю с OeBS и в основном пишу SQL запросы. Хотел бы рассказать, как за это время менялся мой подход в написании SQL запросов.

Читать далее

DB & DWH MeetUp #5 в Райффайзенбанке

Время на прочтение1 мин
Количество просмотров2.3K
Сообщество Database & Data warehouse приглашает на свой митап, который состоится 26 сентября в офисе Райффайзенбанка в Нагатино



Oracle APEX. Отчеты

Время на прочтение18 мин
Количество просмотров30K

В этой статье описываются три типа отчетов апекса: Classic Report, Interactive Report (IR) и Interactive Grid (IG). Classic Report — самый простой из них, но в сочетании с другими компонентами позволяет делать достаточно неожиданные вещи. IR и IG обладают намного более широкими возможностями из коробки, но это в значительной степени вещи в себе. С одной стороны, их широкие возможности делают ненужным какой-то дополнительный тюнинг, с другой, эти же возможности довольно жестко ограничивают возможность сделать что-то дополнительно. Многое из того, что применимо к Classic Report, применимо и к ним тоже.


КДПВ

Читать дальше →

Как подружить Progress OpenEdge и СУБД Oracle

Время на прочтение9 мин
Количество просмотров5.8K
С 1999 года для обслуживания бэк-офиса в нашем банке используется интегрированная банковская система БИСКВИТ на платформе Progress OpenEdge, которая достаточно широко используется во всем мире, в том числе и в финансовом секторе. Производительность данной СУБД позволяет читать до миллиона и более записей в секунду в одной базе базе данных (БД). У нас Progress OpenEdge обслуживает около 1,5 млн депозитов физических лиц и порядка 22,2 млн договоров по активным продуктам (автокредиты и ипотека), а также отвечает за все расчеты с регулятором (ЦБ) и SWIFT.



Используя Progress OpenEdge, мы столкнулись с тем, что нам необходимо подружить ее с СУБД Oracle. Изначально эта связка была «бутылочным горлышком» нашей инфраструктуры — до тех пор, пока мы не установили и не настроили Pro2 CDC — продукт Progress, который позволяет отправлять данные из СУБД Progress в СУБД Oracle напрямую, в онлайн-режиме. В этом посте мы подробно, со всеми подводными камнями расскажем, как эффективно подружить OpenEdge и Oracle.
Читать дальше →

Вопросы совместимости Tibero и Oracle. Часть 2. Разработка Java приложений

Время на прочтение6 мин
Количество просмотров3.1K

Мы продолжаем цикл статей разработчиков приложений для баз данных — Часть 1. Условная компиляция PL/SQL. Эта статья затронет тему использования Tibero в Java приложениях использующих JDBC и Hibernate, а также фреймворк Spring Roo.

Читать дальше →

Использование Graphviz для построения блок-схем

Время на прочтение3 мин
Количество просмотров32K
Мы создаем ПО для разработки и поддержки баз данных Oracle, и статический анализатор PL/SQL является одной из основных фич наших приложений. Кто знаком с Oracle, тот хорошо знает что такое PL/SQL.

Известная поговорка гласит: «Лучше один раз увидеть, чем сто раз услышать». Поэтому мы решили заимпрувить статический анализатор таким образом, чтобы он визуализировал код в виде блок-схем (Flowcharts) и диаграмм вызовов (Call Trees). Хоть и нарисовать блоки и их связи несложно, оптимизировать их расположение на «листе» представлялось задачей, требующей значительных усилий. Чтобы стрелки минимально пересекались и обтекали блоки, блоки объединялись в группы, и диаграмма при этом не превращалась в «кашу», нужно было потратить много сил и времени.

И тогда мы решили поискать готовое решение, дабы не изобретать велосипед. Наше внимание сразу привлек Graphviz – open source решение по визуализации диаграмм. Первые его версии были разработаны компанией AT&T, а теперь он доступен как набор утилит и библиотек, а также в исходниках под лицензией Eclipse Public License (EPL).

Его движок диаграмм использует язык описания графов DOT, который представляет собой текстовое описание структуры графа: вершины, их связи, группы и атрибуты для их визуального оформления.
Читать дальше →

20 бесплатных утилит и 89 скриптов для мониторинга и управления базами данных

Время на прочтение2 мин
Количество просмотров35K
Ты сидишь — база растёт, идёшь — база растёт, спишь, ешь или делаешь ещё много всего, а база всё растёт и растёт. Кто-то очень умный сказал, что единственное, что в нашей жизни постоянно — это изменения. Главное — правильно на них реагировать. Любая нештатная ситуация с базой данных происходит именно из-за таких изменений. К сожалению, не всегда есть возможность вложиться в расшитую золотом и усыпанную драгоценными камнями в 60 карат промышленную систему мониторинга. И это заставляет прибегнуть к бесплатным или условно-бесплатным решениям. В статье я собрал 20 бесплатных утилит от компании IDERA (и не только), которые могут некисло помочь закрыть некоторые вопросы с мониторингом и управлением MS SQL, MySQL и Oracle. Поехали!

halyava_sir.jpg
Впитать знания

Представление данных SAP R/3 в Oracle Database с помощью SAP Java Connector

Время на прочтение6 мин
Количество просмотров5K
В очередной раз возникла необходимость связать две известные системы между собой, теперь это будут Oracle Database и SAP. Возможно, существуют платные методы связывания, но в данном случае речь идёт о необходимости воспользоваться небольшими порциями данных.

Расскажу о том, как можно отобразить данные, взятые из SAP, с помощью оператора select. Пример будет очень простой, для демонстрации принципиальной возможности. Создан он на основе прилагаемых к SAP JCo или общедоступных исходных текстов.

Сразу замечу, что SAP JCo выдают только тем, кто платит. А Oracle Database не приветствует вызовов java с использованием бинарных библиотек, поэтому, по умолчанию такая возможность должна быть специально разрешена.
Читать дальше →

Запускаем BIGIP Trial Edition под Oracle VirtualBox

Время на прочтение2 мин
Количество просмотров6.5K
Пару лет назад по работе столкнулся с чудом инженерной мысли — сетевым балансировщиком. Сам класс LB для меня тогда был незнаком поэтому я с рвением приступил к изучению. В то время я отвечал за веб-сервера, так что работать с балансировщиком приходилось со стороны клиента, а не администратора, но любопытство все же взяло свое.
Читать дальше →

Мегатонны макулатуры легким движением руки

Время на прочтение6 мин
Количество просмотров10K
Добрый день. В этой статье расскажем о том, как устроена печать в нашей платформе.

Немного истории


Для понимания, полезно будет рассказать о истории возникновения этой функции. Изначально решение что называется было «в лоб». Использовался виндовый спулер и печать осуществлялась через стандартные процедуры. Собственно, такое решение продержалось недолго, ровно до того момента, как потребовалось реализовать печать с сервера приложений, а не из клиентского приложения.
На всякий случай приведу схему из первой статьи:


Читать дальше →

Денормализация деревьев

Время на прочтение3 мин
Количество просмотров12K
Очень часто за основу архитектуры приложения берётся дерево. Простой пример: есть страны, в странах — области, в областях — города, в городах — организации, в организациях — работники, товары или что-либо ещё. Использование дерева вполне логично и оправдано. Иерархичность такой системы показывает некая абстрактная таблица. Назовём её object:

CREATE TABLE object (
  id NUMBER(11),
  parent_id NUMBER(11),
  type VARCHAR2(16) NOT NULL,
  name VARCHAR2(255) NOT NULL,
  CONSTRAINT pk_object PRIMARY KEY (id),
  CONSTRAINT fk_object_parent FOREIGN KEY (parent_id) REFERENCES object (id) ON DELETE CASCADE ENABLE
);

Наполним её какими-нибудь данными:

id  |  parent_id  |  type     |  name
------------------------------------------------------
1   |  NULL       |  country  |  Россия
2   |  1          |  region   |  Московская область
3   |  1          |  region   |  Новосибирская область
4   |  2          |  city     |  Москва
5   |  3          |  city     |  Новосибирск

При этом мы можем легко одним запросом получать нужные нам связи:

-- Выбрать все города России
SELECT *
  FROM object
    WHERE type = 'city'
    START WITH id = 1 CONNECT BY PRIOR id = parent_id;

-- Выбрать страну, в которой находится Новосибирск
SELECT *
  FROM object
    WHERE type = 'country'
    START WITH id = 5 CONNECT BY PRIOR parent_id = id;

Однако проблемы появляются, когда записей в таблице становится на столько много, что любой рекурсивный запрос выполняется минуты две, а то и больше. Менять всю архитектуру как-то поздновато… Тут-то нам на помощь и приходит денормализация дерева. В этой статье я расскажу об одном из способов такой денормализации.
Читать дальше →

Ближайшие события

Получение нулевой статистической информации при отсутствии исходных данных

Время на прочтение2 мин
Количество просмотров2.2K
Очень часто возникает задача предоставления некоей статистики за указанный период. Например, сколько было совершено полезных действий пользователем системы за последнюю неделю. Казалось бы, нет ничего проще:

SELECT Data, COUNT(*)
FROM tbl
WHERE Data BETWEEN SYSDATE-7 AND SYSDATE
GROUP BY Data
ORDER BY Data


За неделю ожидаем получить пять строчек — по одной на каждый рабочий день. Все работает. До тех пор, пока пользователи совершают хоть одно действие в день. Если же в таблице не окажется ни одной строки с датой, то и в результате этой даты не будет. И вместо ожидаемых пяти строк в отчете будет четыре… или три… или вообще ни одной. А пользователи хотят видеть пять, пусть и с нулями!

Читать дальше →

«Сами мы не местные», или Как мы провели миграцию с Oracle на PostgreSQL

Время на прочтение4 мин
Количество просмотров7.8K

Недавно мы написали о том, насколько экономически разумно «переезжать» с Oracle на PostgreSQL. В этом материале хотели бы поделиться практическим опытом, как осуществить миграцию небольшой СУБД, и какие подводные камни вас могут ожидать при этом.

Читать далее

Oracle: Deterministic functions, result_cache and operators

Время на прочтение4 мин
Количество просмотров4K

После перевода статьи Oracle: разница между deterministic и result_cache от Steven Feuerstein, хотелось бы дополнить ее действительно важными деталями их устройства. У меня есть серия статей на эти темы, но тут я хотел бы просто все резюмировать и оставить самое важное.

Read more

Глоссарий терминов Oracle: история создания

Время на прочтение3 мин
Количество просмотров3.3K
Приветствуем всех читателей нашего хаба!

Как и обещали, рассказываем о глоссарии терминов Oracle, который был создан командой технических специалистов РДТЕХ и сейчас доступен всем, кто работает с базами данных. Глоссарий размещен в свободном доступе на нашем сайте и на данный момент содержит 14 537 терминов.

Для чего вообще нужен глоссарий, если есть словари?


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

Глоссарий сам по себе – очень важная часть процесса перевода, обеспечивающая единообразие терминов во всей переводимой документации, вне зависимости от количества переводчиков и их сменяемости.


Читать дальше →

Веб-сервисы в Oracle

Время на прочтение39 мин
Количество просмотров38K


Веб-сервисы широко применяются для интеграции между компонентами одной системы или между различными системами. Популярность веб-сервисов как способа интеграции обусловлена их универсальностью, а также простотой реализации и отладки. Универсальность связана с передачей данных с помощью интернета и протокола HTTP. Веб-сервисы дают возможность относительно легко построить интеграции между компонентами, написанными на разных языках, запускаемыми на разных операционных системах и платформах. Простота реализации веб-сервисов достигается за счет встроенных во многие IDE средств и компонентов, позволяющих быстро разработать как сам веб-сервис (provider side), так и необходимый код для вызова сервиса на стороне клиента (client side). Отладку сервисов упрощает использование понятных человеку форматов обмена данными — XML и JSON. Кроме того, существует множество утилит для отладки и тестирования сервисов, в том числе нагрузочного.

В этой статье рассмотрим несколько способов создания веб-сервисов непосредственно из СУБД Oracle, то есть без использования сторонних средств.
Читать дальше →

EF Core + Oracle: как сделать миграции идемпотентными

Время на прочтение4 мин
Количество просмотров4.2K


Обычно фреймворк EF Core используют в сочетании с MS SQL — другим продуктом Microsoft. Однако это не догма. Например, мы в CUSTIS пишем бизнес-логику на C#, а для управления базами данных используем Oracle. В EF Core есть замечательный механизм миграций, но в нашем случае они не идемпотентны. Дело в том, что Oracle и ряд других БД, например MySQL, не поддерживают транзакционный DDL. Значит, если миграция упадет где-то посередине, ее не получится ни накатить, ни откатить. Как же реализовать идемпотентные миграции на EF Core без MS SQL?
Читать дальше →

Приглашаем на BD&DWH Raiffeisen MeetUp UPD Трансляция

Время на прочтение1 мин
Количество просмотров2.1K
Приглашаем на открытый митап BD&DWH, который пройдет 21 мая 2019 года на площадке Райффайзенбанка в Нагатино!

Ребята расскажут про опыт разработки хранилища данных на MS SQL Server и паттерны проектирования моделей данных в хранилище. А еще к нам прихал Joel R. Kallman из Oracle и будет говорить про APEX.