如何通过JDBC从Oracle数据库中检索实际的Blob数据,而不是“ oracle.sql.blob @”?

问题描述 投票:0回答:2

我们正在使用Jython和JDBC从oracle数据库中检索数据,但BLOB字段未返回blob数据。而不是实际的Blob数据,我们看到的字段看起来像这样:

oracle.sql.BLOB@10e8881

如果我们使用JDBC连接在Razor SQL中执行相同的查询,我们可以在结果文本中看到blob,并且它们看起来不错。 (我们根本没有在字段中看到“ oracle.sql.Blob”。)

这是执行查询的Python代码和SQL:

cur = connect_to_database()
query = "SELECT * FROM {} WHERE ROWNUM = 1".format(table_name)
cur.execute(query)
results = cur.fetchall()
print results

当我们打印结果时,其中一列具有我们上面显示的值。我们没有看到二进制斑点。

这是我们执行Python脚本的方式:

C:\jython2.7.0\bin\jython.exe C:\path_to_our_script.py

如何获得返回的blob中的实际二进制数据,而不是我们看到的“ oracle.sql.blob @”文本?

我们正在使用Jython和JDBC从oracle数据库中检索数据,但BLOB字段未返回blob数据。而不是实际的Blob数据,我们看到的字段看起来像这样:...

python sql oracle jdbc jython
2个回答
0
投票

您必须读取二进制数据才能从Blob中获取文本。


0
投票

如果您有选择升级到zxJDBC而不是纯JDBC的选项,那么您将立即获得对blob到数组转换的支持。

© www.soinside.com 2019 - 2024. All rights reserved.