Oracle выпустила новую версию интерфейса Python для базы данных Oracle. Новая версия поддерживает Python 3.6 и Oracle client 12.2.
Некоторые изменения в этой версии относятся к функциям Oracle Database 12c, но большинство улучшений носят более общий характер. cx_Oracle 5.3 работает с Python версии 2.7, а также с версиями 3.4 и выше. Выпуск также является точкой, в которой репозиторий исходного кода cx_Oracle и домашняя страница перемещаются на GitHub.
Большая часть работы над обновленной версией была выполнена Энтони Туинингой, который разработал оригинальный cx_Oracle во время работы в Computronix. Он продолжал работать над интерфейсом с тех пор, как присоединился к Oracle.
Наряду с поддержкой Python 3.6 и Oracle client 12.2, новая версия добавляет поддержку прямой привязки к объектам SQL, что позволяет выполнять такие действия, как привязка объектов Python к объектам Oracle Spatial SDO. Теперь вы также можете связывать записи и коллекции PL/SQL.
Добавлена поддержка прокручиваемых курсоров, чтобы вы могли перемещаться по результатам запросов как вперед, так и назад, также добавлена расширенная очередь, чтобы вы могли специально добавлять и удалять объекты в очереди. Предполагается, что это означает, что вы можете использовать уведомления базы данных для создания приложений микросервисов.
Еще одним дополнением является возможность извлечения неявных результатов PL/SQL, что упрощает возврат результатов запросов из PL/SQL.
Одним из приятных дополнений является поддержка защиты транзакций. Это позволяет проверить состояние транзакций после незапланированных отключений сервера, чтобы избежать проблем, вызванных транзакциями, которые были частично завершены, но не были завершены.
Последнее улучшение, о котором стоит упомянуть, — это поддержка кэширования операторов, которая позволяет снизить затраты на часто выполняемые операторы. Теперь это доступно для всех подключений.
Наряду с cx_Oracle 5.3, Tuininga работает над ODPI-C, библиотекой кода С открытым исходным кодом, которая упрощает и стандартизирует использование общих функций интерфейса вызовов Oracle (OCI), таких как функции, используемые cx_Oracle. Это было недавно выпущено на Github, и главная ветвь кода cx_Oracle была обновлена для его использования.