Рубрика «oracle» - 27

Я хотел научиться работать с oracle из xcode, так как не обнаружил готового фреймворка от apple для работы с базой данных oracle напрямую.
Для начала, я попробовал создать тестовый проект и подключить к нему instantclient от oracle. Также я использовал тестовый пример от Oracle ( cdemo81.c ), включил его код в проект на xcode и протестировал работу. Да, все работает, хотя пришлось немножко побить в шаманский бубен от google. Тем не менее, использовать напрямую oci библиотеку тяжело, так как нужно реализовать интерфейс, а это похоже на изобретение велосипеда.
Тогда я решил попробовать использовать кросс-платформенную библиотеку ocilib ( http://orclib.sourceforge.net )
Далее в тексте пошаговая инструкция о том, как сделать тестовый проект на cocoa и использовать эту библиотеку. Цель тестового проекта — подключив библиотеку получить данные с сервера oracle.Читать полностью »

Очень часто за основу архитектуры приложения берётся дерево. Простой пример: есть страны, в странах — области, в областях — города, в городах — организации, в организациях — работники, товары или что-либо ещё. Использование дерева вполне логично и оправдано. Иерархичность такой системы показывает некая абстрактная таблица. Назовём её 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;

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

Oracle умеет много (и с каждой версией все больше и больше). Зачастую, многие разработчики не используют некоторые нововведения очень долго. Иногда это обусловлено требованиями обратной совместимости, но чаще, банальным незнанием. Вот так-же и я, работая уже с 11 и 12 версиями Oracle, до вчерашнего дня, ни разу не использовал конструкцию insert all. Но вчера я подумал «на дворе уже 21-ый век, зачем пользоваться временными таблицами, если можно выполнять одновременную вставку в несколько таблиц?». Тут-то и начались приключения.
Читать полностью »

Не секрет, что Oracle претендует на звание крупнейшего в мире корпоративного облака. Oracle Public Cloud, пригоден, по утверждениям компании, для переноса в себя всех приложений и бизнес-процессов предприятия.

Недавно пришлось попробовать Oracle Java Cloud Service в работе. Впечатления, в общем — положительные, но был немного расстроен, т.к не имел возможности работать с этим сервисом в своей любимой среде разработки — Intellij IDEA.
И вот два дня назад появился плагин Oracle Cloud integration. О том, какие возможности он нам предоставляет, я и хотел рассказать в этой статье.
Читать полностью »

Привет. По работе мне приходится иметь дело с OBIEE (Oracle Business Intelligence Enterprise Edition) в качестве разработчика и администратора, поэтому я решил поделиться тем объемом знаний, который успел накопить. Надеюсь, кому-нибудь это поможет в освоении системы. Сначала я планирую рассказать про систему в целом, затем — про архитектуру и взаимодействие компонентов, а в конце — рассказать про те особенности, с которыми пришлось столкнуться за время работы.

Обзор системы

Oracle Business Intelligence Enterprise Edition (OBIEE, OBI) — программная платформа для решения задач бизнес-аналитики: интерактивных и публикуемых отчетов, мониторинга KPI и бизнес-процессов. Является потомком Siebel Analytics. Основные функциональные части, доступные пользователям:

  • Answers (также называются Interactive Dashboards) — построение интерактивных отчетов, доступных для пользователей через веб-интерфейс OBIEE. Единицей отчетности является analysis — простой отчет, как правило, включающий в себя одно отображение (таблицу, график, диаграмму и т.п.). Analysis объединяются в информационные панели (Dashboards), с которыми работают конечные пользователи. Информационные панели также могут включать в себя приглашения (prompts) — элементы настройки, с помощью которых пользователь может взаимодействовать с панелью.
  • Publisher (также иногда в него включают Delivers) — средство создания и рассылки статических отчетов. Т.к. publisher развился из отдельного продукта, то в нем есть возможность строить отчеты на собственной модели данных, независимой от модели данных OBI, однако можно использовать и общую модель. Также есть возможность рассылки существующих отчетов из answers.
  • Action Framework — набор средств для выполнения каких-либо автоматизированных действий из OBIEE — например, рассылка отчетов по достижению показателем определенного значения, вызова внешних веб-служб, вызова java кода и т.п. Действия могут быть объединены в цепочки. Возможно настройка различных каналов оповещения пользователей — e-e-mail, sms, пейджер и т.п.
  • Scorecard and Strategy Management — средства для отслеживания ключевых параметров производительности (KPI) и работы с системами показателей (Scorecard — http://en.wikipedia.org/wiki/Balanced_scorecard). Используются для наглядного отображения статуса выполнения целей (компании, проекта). Доступ пользователей, как и в случае с answers, осуществляется через веб-интерфейс.
  • Marketing — средства интеграции с Siebel Marketing.
  • Office Tools — средства интеграции с Microsoft Office.

Читать полностью »

Совсем недавно я сдал OCA Java SE 7 Programmer I. За время подготовки успел решить огромное количество задач и извлечь из них много тонких моментов языка. Самые интересные и ловкие — сохранял на будущее. И вот у меня накопилась небольшая личная коллекция, лучшую часть которой я здесь и опишу.

В замечательной статье Знаешь ли ты JAVA, %username% и её второй части автор тоже поделился опытом после подготовки. Однако я пришёл к выводу, что могу добавить что-то своё. Так и зародилась эта статья.

Хитрые задачки по JavaЧитать полностью »

Data replication. Attunity Replicate and Greenplum

В данной статье мне хотелось бы продолжить описание технологий, используемых в Банке ТКС при построении DWH. Статья может быть интересна тем, кто планирует использовать LogMining Change Data Capture (CDC) для репликации данных из операционных источников в онлайн-стэйджинг Хранилища, построенного на основе СУБД GreenPlum.

Читать полностью »

Google возвращается в суд, чтобы защитить будущее программирования
Исполнительный директор Oracle Ларри Эллисон

Полтора года назад компания Google одержала убедительную победу на Oracle в судебном процессе по использованию кода Java в операционной системе Android. Однако, в среду 4 декабря представителей компании Google вызвали в Апелляционный суд США для дачи показаний по поводу апелляции компании Oracle. Это значит, что процесс может возобновиться, а прежнее решение могут отменить.
Читать полностью »

Рано или поздно многие приходят к тому, что необходимо подтверждать свои знания различного рода сертификатами. Это может быть как для статуса, так ввиду производственной необходимости. Данная статья является описанием того, что нужно для получения сертификатов Oracle.
Читать полностью »

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

Сегодня, я хочу исправить допущенные ошибки. Я расскажу о реальной задаче обработки данных SNMP-мониторинга, уделяя максимальное внимание техническим подробностям. Я постараюсь обосновать выбор подходов для ее решения и сравнить их производительность. Также, я уделю внимание тем техническим моментам, которые могут вызвать сложности у новичков. Прежде чем двигаться дальше, я хочу выразить свою признательность DenKrep, xlix123, zhekappp и всем прочим товарищам, давшим невероятное количество полезных советов, в процессе обсуждения предыдущей статьи.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js