Я хотел научиться работать с oracle из xcode, так как не обнаружил готового фреймворка от apple для работы с базой данных oracle напрямую.
Для начала, я попробовал создать тестовый проект и подключить к нему instantclient от oracle. Также я использовал тестовый пример от Oracle ( cdemo81.c ), включил его код в проект на xcode и протестировал работу. Да, все работает, хотя пришлось немножко побить в шаманский бубен от google. Тем не менее, использовать напрямую oci библиотеку тяжело, так как нужно реализовать интерфейс, а это похоже на изобретение велосипеда.
Тогда я решил попробовать использовать кросс-платформенную библиотеку ocilib ( http://orclib.sourceforge.net )
Далее в тексте пошаговая инструкция о том, как сделать тестовый проект на cocoa и использовать эту библиотеку. Цель тестового проекта — подключив библиотеку получить данные с сервера oracle.Читать полностью »
Метка «oracle» - 3
Работа с DB Oracle из Xcode
2014-03-28 в 9:42, admin, рубрики: Cocoa, database, mac os x, oracle, xcode, метки: database, mac os x, oracle, xcodeДенормализация деревьев
2014-02-17 в 12:04, admin, рубрики: oracle, деревья, Проектирование и рефакторинг, метки: 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
2014-01-30 в 6:34, admin, рубрики: oracle, sequence, метки: oracle, sequence Oracle умеет много (и с каждой версией все больше и больше). Зачастую, многие разработчики не используют некоторые нововведения очень долго. Иногда это обусловлено требованиями обратной совместимости, но чаще, банальным незнанием. Вот так-же и я, работая уже с 11 и 12 версиями Oracle, до вчерашнего дня, ни разу не использовал конструкцию insert all. Но вчера я подумал «на дворе уже 21-ый век, зачем пользоваться временными таблицами, если можно выполнять одновременную вставку в несколько таблиц?». Тут-то и начались приключения.
Читать полностью »
Data replication. Attunity Replicate and Greenplum
2013-12-16 в 17:00, admin, рубрики: CDC, dwh, greenplum, oracle, Блог компании Тинькофф Кредитные Системы, метки: CDC, dwh, greenplum, oracle
В данной статье мне хотелось бы продолжить описание технологий, используемых в Банке ТКС при построении DWH. Статья может быть интересна тем, кто планирует использовать LogMining Change Data Capture (CDC) для репликации данных из операционных источников в онлайн-стэйджинг Хранилища, построенного на основе СУБД GreenPlum.
Google возвращается в суд, чтобы защитить будущее программирования
2013-12-06 в 10:17, admin, рубрики: api, Dura Lex, Google, java, oracle, исходный код, софтверный патент, метки: Google, java, oracle, исходный код, софтверные патенты
Исполнительный директор Oracle Ларри Эллисон
Полтора года назад компания Google одержала убедительную победу на Oracle в судебном процессе по использованию кода Java в операционной системе Android. Однако, в среду 4 декабря представителей компании Google вызвали в Апелляционный суд США для дачи показаний по поводу апелляции компании Oracle. Это значит, что процесс может возобновиться, а прежнее решение могут отменить.
Читать полностью »
Мануал по сертификации Oracle
2013-11-11 в 7:51, admin, рубрики: oracle, сертификация, метки: oracle, сертификация Рано или поздно многие приходят к тому, что необходимо подтверждать свои знания различного рода сертификатами. Это может быть как для статуса, так ввиду производственной необходимости. Данная статья является описанием того, что нужно для получения сертификатов Oracle.
Читать полностью »
Загружаем в Oracle данные SNMP-мониторинга
2013-11-01 в 10:36, admin, рубрики: java, jdbc, oracle, snmp, метки: jdbc, oracle, snmpНекоторое время назад, я написал статью посвященную вопросам оптимизации загрузки данных в БД Oracle. Судя по обилию последовавших комментариев, статья вызвала живой интерес, но, судя по тем-же комментариям (а также последовавшей статье о загрузке данных в PostgreSQL) многими она была понята не так, как я на то рассчитывал. По большей части, виноват в этом я сам, поскольку, в процессе упрощения изложения материала, оторвался от жизни настолько, что задача перестала быть понятна окружающим (это, в свою очередь, негативно сказалось на понимании причин выбора методов, использованных для ее решения).
Сегодня, я хочу исправить допущенные ошибки. Я расскажу о реальной задаче обработки данных SNMP-мониторинга, уделяя максимальное внимание техническим подробностям. Я постараюсь обосновать выбор подходов для ее решения и сравнить их производительность. Также, я уделю внимание тем техническим моментам, которые могут вызвать сложности у новичков. Прежде чем двигаться дальше, я хочу выразить свою признательность DenKrep, xlix123, zhekappp и всем прочим товарищам, давшим невероятное количество полезных советов, в процессе обсуждения предыдущей статьи.
Читать полностью »
String Aggregation in the SQL Server World
2013-10-30 в 6:48, admin, рубрики: aggregate, mysql, oracle, sql, sql server, string, XML, метки: aggregate, mysql, oracle, sql, sql server, string, XMLНа практике, задачи по объединении строк в одну попадаются достаточно часто. Весьма печально, но стандарт T-SQL не предусматривает возможности использовании строковых данных внутри агрегирующей функции SUM:
Msg 8117, Level 16, State 1, Line 1
Operand data type char is invalid for sum operator.
Хотя для решения подобного рода задач, для MySQL была добавлена функция GROUP_CONCAT, а в Oracle – LISTAGG. В свою же очередь, SQL Server такого встроенного функционала пока не имеет.
Однако, не стоит рассматривать это как недостаток, поскольку возможности T-SQL позволяют выполнять конкатенации строк более гибко и эффективно за счет применения других конструкций, которые будут рассмотрены далее.
Читать полностью »
Сертификаты MySQL DBA и MySQL Developer по 50 долларов
2013-10-29 в 12:50, admin, рубрики: certification, mysql, oracle, сертификация, метки: certification, mysql, oracle, сертификацияВчера Oracle Certification запустила beta-сертификацию MySQL 5.6 DBA и MySQL 5.6 Developer Beta-программа продлится около двух месяцев. В это время у вас есть возможность получить сертификаты за 50 USD
Это первый официальный экзамен по MySQL за очень долгое время: предыдущий был для версии 5.0 и много багов утекло с той поры. Для меня лично это событие значимо ещё и потому, что я принимала активное участие в создании и редактировании вопросов вместе с другими инженерами из команды MySQL Support. А гордиться нам есть чем.
Быстрая компиляция большого количества инвалидных объектов в БД
2013-10-25 в 19:41, admin, рубрики: oracle, метки: oracle БД находится в restricted (выполнен startup restrict или alter sytem enable restricted session+убиты все пользовательские сессии).
listener остановлен.
Последовательность действий.
- exec dbms_scheduler.set_scheduler_attribute('scheduler_disabled','true');alter system disable restricted session;
- @?/rdbms/admin/utlrp
- в другой сессии: alter system enable restricted session;exec dbms_scheduler.set_scheduler_attribute('scheduler_disabled','false');