Компания Oracle объявила (https://blogs.oracle.com/opal/open-source-library-drives-pow...) об открытии исходных текстов библиотеки ODPI-C (https://oracle.github.io/odpi/) для СУБД Oracle, представляющий программный интерфейс для упрощения доступа к СУБД из приложений на языках C/C++. По сравнению с OCI новый интерфейс заметно упрощает процесс разработки, предоставляет более абстрактные методы управления памятью и ресурсами, и позволяет обойтись меньшим кодом в случаях когда не требуется применение расширенных возможностей Oracle. Библиотека является обвязкой над низкоуровневым интерфейсом Oracle Call Interface (OCI). Код написан на языке Си и распространяется (https://github.com/oracle/odpi) под лицензией Apache 2.0.
Изначально ODPI-C был разработан в процессе создания Python-интерфейса cx_Oracle и также задействован в драйверах для Node.js, Go и Rust.
ODPI-C позволяет выполнить SQL и PL/SQL c поддержкой курсоров прокрутки, объектов, JSON, загрузки массивов, кэширования выражений, очередей, внешней аутентификации и уведомлений о выполнении запросов. Встроенный механизм контроля использования ресурсов на основе подсчёта ссылок упрощает применение библиотеки в многопоточных приложениях.URL: https://blogs.oracle.com/opal/open-source-library-drives-pow...
Новость: http://www.opennet.me/opennews/art.shtml?num=47025
> Библиотека является обвязкой над низкоуровневым интерфейсом Oracle Call Interface (OCI)
> распространяется под лицензией Apache 2.0.Вот только сам OCI запредельно проприетарный. Ещё и от такой корпорации, как Oracle.
Поясните пожалуйста Вашу мысль..
Oracle Call Interface - "запредельно проприетарный"? Это как?
Вы знаете Oracle Call Interface не от корпорации Oracle?
Проблема в том что у Oracle закрытый протокол обращения к БД (хотя есть же ManadgedDataAccess
Олдфаги ещё не забыли, как "взламываются" их БД?
Патчим клиентский бинарник и... всё, можно авторизовываться "известным вам" (любым) паролем.
Кому эта хрень вообще нужна, ежели орацлем пользуются только через jdbc?
> Кому эта хрень вообще нужна, ежели орацлем пользуются только через jdbc?Ну например есть у вас приложение на ASP.. и вы хотите его связать с базой... наверное как-то так...
Так это легаси, и его никто ни с чем связывать не захочет.
Возможно, для Вас будет сюрпризом узнать, что за пределами мира жабы существуют другие языки программирования, и они тоже имеют средства для работы с БД, включая Оракл.
> Возможно, для Вас будет сюрпризом узнать, что за пределами мира жабы существуют
> другие языки программирования, и они тоже имеют средства для работы с
> БД, включая Оракл.для вас будет сюрпризом, что в пределах мира орацле ничего кроме жабы не существует.
>> Возможно, для Вас будет сюрпризом узнать, что за пределами мира жабы существуют
>> другие языки программирования, и они тоже имеют средства для работы с
>> БД, включая Оракл.
> для вас будет сюрпризом, что в пределах мира орацле ничего кроме жабы
> не существует.Oracle.ManagedDataAccess (ODP)
да, да, не существует. OCI - это я подбросил.
этот OCI помнится кучу версий имел и писали его левой ногой что сразу давало понять о качестве кода в самой базе. postgres наше все
> этот OCI помнится кучу версий имел и писали его левой ногой что
> сразу давало понять о качестве кода в самой базе. postgres наше
> всекак только научится ... очень много чему. Да есть подвижки, но для многих применений пока ещё очень далеко.
> как только научится ... очень много чему. Да есть подвижки, но для
> многих применений пока ещё очень далеко.Вот это динозавр откопался :)))) для информации, на этой планете последние 10 лет рулят NOSQL.
> этот OCI помнится кучу версий имел и писали его левой ногой что сразу давало понять о качестве кода в самой базе.
> postgres наше всеЧо правда что-ли больше версий чем у postgres?
И "postgres наше всё" говорят ява программисты, которые могут только insert/update/delete.
И у которых здорово подгорает, когда показываешь, что используя оракл, всё их нагромождение классов можно заменить несколькими хранимыми процедурами по 10-20 строк в каждой.Не могу ничего сказать о качестве кода ни в postgres, ни в oracle - не видел ни там, ни там.
Но документация в oracle лучше.То для чего в оракл есть готовые решения (управление транзакциями, пакеты, автономные тразакции, запуск задач по расписанию, переносимые табличные пространства, переопределение таблиц, флэшбэк архив, репликация и т.д. и т.д)
в postgres приходится делать самому (и _поразному_ на разных OS).В оракл нет извратов типа "set transaction isolation level read uncommited"
> И "postgres наше всё" говорят ява программисты, которые могут только insert/update/delete.
> И у которых здорово подгорает, когда показываешь, что используя оракл, всё их нагромождение классов можно заменить несколькими хранимыми процедурами по 10-20 строк в каждой.Про хранимые процедуры у postgres слышал?
> Не могу ничего сказать о качестве кода ни в postgres, ни в oracle - не видел ни там, ни там.
> Но документация в oracle лучше.Объёмнее - это да. Но найти что-то конкретное бывает ой как непросто и небыстро.
> То для чего в оракл есть готовые решения (управление транзакциями, пакеты, автономные тразакции, запуск задач по расписанию, переносимые табличные пространства, переопределение таблиц, флэшбэк архив, репликация и т.д. и т.д)
> в postgres приходится делать самому (и _поразному_ на разных OS).То есть как самому? Вообще с нуля? Или всё-же в сети встречаются готовые примеры (для разных OS)?
> В оракл нет извратов типа "set transaction isolation level read uncommited"Зато есть изврат "select for update", который блокирует другие запросы.
А read uncommited в oracle иногда очень не хватает, особенно, если кто-то выполнил "select for update".
>Зато есть изврат "select for update", который блокирует другие запросы.nowait пробывал?
>А read uncommited в oracle иногда очень не хватает, особенно, если кто-то выполнил "select for update".
Зачем тогда СУБД? Пиши сразу в файл, так гораздо быстрее
>Зато есть изврат "select for update", который блокирует другие запросы.Вот про изврат - мне понравилось :)
А в постргесс select for update не блокирует таблицу? А как же тогда достигается консистентность?
https://www.postgresql.org/docs/9.5/static/sql-select.html
>используя оракл, всё их нагромождение классов можно заменить несколькими хранимыми процедурами по 10-20 строк в каждойНу и ересь :))) ещё скажи, что процедурное программирование круче ООП.
По моим наблюдениям PLSQLные портянки намного многословнее, чем жабокод.
Который кстати далеко не лаконичен, что впрочим лечится хорошей IDE.
А у вас где отладчик, unittest-ы?Когда ядро проекта написано на PLSQL то скорость разработки очень быстро падает до нуля и морфирует в зацикленный процесс багогенерации, пока не придёт жабист и не перепишет всё нормально :))))
Кстати, ты конечно сравниваешь бесплатный Пг и бесплатный oracle 11 xe? Ха-ха-ха...У нас в конторе такой ДБАшечка раньше тоже был - давайте сопрём oracle ee за 100килобаксов, а то мне лень руками и головой пошевелить с этим вашим Пг.
Взяли вообще монго, а дба теперь полы моет.
Скоро вы все их мыть будете ибо Монга - *нище лютое! :)
Посмотрел код примера. :(
Если это "интерфейс заметно упрощает процесс разработки" - то
используемая мной библиотека IBPP для Firebird от 2007 года - верх совершенства, а OTL вообще вне сравнения ...