我们正在使用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数据,我们看到的字段看起来像这样:...
您必须读取二进制数据才能从Blob中获取文本。
如果您有选择升级到zxJDBC而不是纯JDBC的选项,那么您将立即获得对blob到数组转换的支持。