2

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ます。しかし、私はすでにこの形式のデータを大量に持っているので、それを買う余裕はありません...

何か案が?

4

1 に答える 1