是否有支持xmltype列的Python Oracle封装?

5 投票
3 回答
1306 浏览
提问于 2025-04-15 11:58

看起来 cx_Oracle 这个库不支持处理 XML。

如果有其他建议可以用来在 Oracle 数据库和 Python 中处理 XML,那就太好了。

谢谢!

3 个回答

0

(编辑过,去掉了对一个非Oracle的Python数据库接口模块的提及,并添加了一些更相关且希望有用的信息。)

我不知道有什么可以替代cx_oracle的东西(因为DCOracle2的作者说过,“DCOracle2目前没有维护,也没有支持。”所以这并不算真正的替代品)。

不过,最近在Oracle自己网站上有一篇文章提到(至少在像Oracle 10g XE这样的最新版本中——而且可能在最近的cx_oracle版本中)Python可以和Oracle的XML支持一起使用。我不知道那篇文章里的例子能不能帮你解决问题,但我真心希望能有帮助!

1

我通过把XMLElement的调用放在XMLType.GetClobVal()的调用里面,成功让它工作了:

比如说:

select xmltype.getclobval(xmlelement("rowcount", count(1)))
from...

目前还不知道有什么限制,但这解决了我的问题。在Oracle网站上找到了相关的信息:

掌握Oracle+Python,第一部分:查询最佳实践

1

我用cx_Oracle成功实现了这个功能。

我在插入包含XMLTYPE字段的表格时,使用了sys.xmltype.createxml()这个函数;然后我用了prepare()和setinputsizes()来指定我用来处理XMLTYPE字段的绑定变量是cx_Oracle.CLOB类型。

撰写回答