Ich habe eine Legacy-Datenbank mit LONG RAW-Spalten. Die in diesen Spalten gespeicherten Daten sind ca. 100KB groß. Ich versuche, mit cx_Oracle auf diese Binärdaten zuzugreifen.
Es funktioniert, aber die maximale Größe, die ich extrahieren konnte, ist ~41KB !
Hier ist mein Code (aus 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
Die Ausgabe sieht folgendermaßen aus:
$ 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
Ich weiß LONG RAW
sind nicht leicht zu bewältigen. Einige Methoden besagen, dass man eine neue Tabelle mit BLOB
Spalte. Aber ich kann es mir nicht leisten, weil ich bereits Gigas von Daten in diesem Format habe...
Irgendeine Idee?