Существует ли оболочка Oracle для Python, которая поддерживает столбцы xmltype?
Вопрос
Похоже, cx_Oracle этого не делает.
Приветствуются любые другие предложения по обработке xml с помощью Oracle и Python.
Спасибо.
Решение
Мне удалось сделать это с помощью cx_Oracle.
Я использовал функцию sys.xmltype.createxml() в операторе, который вставляет строки в таблицу с полями XMLTYPE;затем я использовал prepare() и setinputsizes(), чтобы указать, что переменные привязки, которые я использовал для полей XMLTYPE, были типа cx_Oracle.CLOB.
Другие советы
Мне удалось заставить это сработать, обернув вызов XmlElement в вызов XMLType.GetClobVal()
:
Например:
select xmltype.getclobval(xmlelement("rowcount", count(1)))
from...
Пока не имею представления об ограничениях, но это избавило меня от неприятностей.Нашел интересующую информацию на сайте Oracle:Освоение Oracle + Python, Часть 1:Запрос лучших практик
(отредактировано, чтобы удалить упоминание о модуле Python DB-API, отличном от Oracle, и добавить еще немного актуальной и, надеюсь, полезной информации).
Не знаю никакой альтернативы cx_oracle
(как автор DCOracle2 говорит, "DCOracle2 в настоящее время не поддерживается, и поддержка недоступна". так что на самом деле это не альтернатива).
Однако недавний Статья на собственном сайте Oracle утверждается, что (по крайней мере, с недавними выпусками, такими как Oracle 10g XE - и, предположительно, с недавними выпусками cx_oracle) Python может работать с поддержкой Oracle XML - я не знаю, помогут ли вам примеры в этой статье решить ваши проблемы, но я очень надеюсь на это!