Python 使用cx_Oracle读取长原始数据

Python 使用cx_Oracle读取长原始数据,python,cx-oracle,Python,Cx Oracle,我有一个原始列很长的遗留数据库。此列中存储的数据约为100KB。 我正在尝试使用cx_Oracle访问这些二进制数据 它正在工作,但是我可以提取的最大大小约为41KB 这是我的密码 输出如下: $ python oracle.py [('GRIB', <type 'cx_Oracle.LONG_BINARY'>, -1, 0, 0, 0, 1)] $ ls -lh /tmp/data 41186 2011-01-20 12:42 /tmp/pygrib 我知道长生不老不容易对付。有

我有一个原始列很长的遗留数据库。此列中存储的数据约为100KB。 我正在尝试使用cx_Oracle访问这些二进制数据

它正在工作,但是我可以提取的最大大小约为41KB

这是我的密码

输出如下:

$ python oracle.py
[('GRIB', <type 'cx_Oracle.LONG_BINARY'>, -1, 0, 0, 0, 1)]
$ ls -lh /tmp/data
41186 2011-01-20 12:42 /tmp/pygrib
我知道长生不老不容易对付。有些方法告诉我们重新创建一个包含BLOB列的新表。但我负担不起,因为我已经有了这种格式的千兆数据


有什么想法吗?

您可以创建一个带有BLOB列的全局临时表,然后在获取长原始值之前,使用TO_LOB转换函数将其插入该表中。然后,您可以从临时表中选择BLOB值。

您可以使用BLOB列创建一个全局临时表,然后在获取长原始值之前,使用TO_LOB转换函数将其插入该表中。然后,您可以从临时表中选择BLOB值。

me好奇-为什么使用此游标。setoutputsize1200000000?我看到你链接的代码中有一个不同的地方。它不使用默认值,所以我尝试增加它…你有没有考虑过用dbms_lob动态转换成blob?我很好奇-为什么这个cursor.setOutputSize120000000?我看到你的链接代码中有一个不同的地方。它不能使用默认值,所以我尝试增加它…你有没有考虑过用dbms_lob动态转换成blob?
$ python oracle.py
[('GRIB', <type 'cx_Oracle.LONG_BINARY'>, -1, 0, 0, 0, 1)]
$ ls -lh /tmp/data
41186 2011-01-20 12:42 /tmp/pygrib