LONG RAW 列を含むレガシー データベースがあります。この列に格納されるデータは約 100 KB です。これらのバイナリ データに 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ます。しかし、私はすでにこの形式のデータを大量に持っているので、それを買う余裕はありません...
何か案が?