У меня есть устаревшая база данных с колонками LONG RAW.Данные, хранящиеся в этих столбцах, составляют около ~ 100 КБ.Я пытаюсь получить доступ к этим двоичным данным с помощью cx_Oracle.
Это работает, однако максимальный размер, который я могу извлечь, составляет ~ 41KB !
Вот мой код (изhttp://dbaportal.eu/?q=node/147)
cursor = db.cursor()
cursor.arraysize = 1
cursor.setoutputsize(1200000000)
cursor.execute("select data from mytable")
print cursor.description
for row in cursor:
data = row[0]
f = open("/tmp/data",'wb')
f.write(data)
f.close()
# Only first line
break
Вывод выглядит так:
$ 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
Я знаю, с LONG RAW
нелегко иметь дело. Некоторые методы сообщают, что нужно заново создать новую таблицу с BLOB
Но я не могу себе этого позволить, потому что у меня уже есть гигабайты данных в этом формате ...
Есть идеи?