1

我正在使用 python 的 jaybedeapi 连接到 Oracle 数据库。一切似乎都运行良好,除非我遇到包含oracle.sql.clob数据的字段:

连接查询:

conn = jaydebeapi.connect('oracle.jdbc.OracleDriver','jdbc:oracle:thin:user/pass@host:port:db')

cur = conn.cursor()

cur.execute("select * from table")

data = cur.fetchmany(size=10)

print data[0][1] 

返回:

<jpype._jclass.oracle.sql.CLOB at 0x5fe83d543c92>

如何打印这些字段中的值?

编辑:

我不喜欢DBMS_LOB.substr(field,3000)在 select 语句中显式调用每个字段(有效)。如果可能的话,我宁愿直接在python中有一个解决方案。

4

1 回答 1

3

这对我有用:

db_result = data[0][1]
print db_result.getSubString(1, db_result.length())

我在 Win 7/64 上使用 jaydebeapi 版本 0.2.0 和 jpype 0.5.7、Python 2.7.10/32。在这里找到了解决方案:http: //almostflan.com/t/embedclob/虽然我没有他所做的自动提交问题。

于 2015-11-20T00:48:01.413 回答