Blob data from Oracle to text file using python

前端 未结 3 1018
悲哀的现实
悲哀的现实 2021-01-22 10:58

I have been trying to get the blob data from oracle into a text file using Python. I couldn\'t find the answer on any of the other links.

Below is my code :



        
相关标签:
3条回答
  • 2021-01-22 10:59

    If your LOBs are small enough to fit in memory you'll get better performance if you fetch BLOBs as LONG_BINARY (and use LONG_STRING for CLOBs):

    def OutputTypeHandler(cursor, name, defaultType, size, precision, scale):
        if defaultType == cx_Oracle.CLOB:
            return cursor.var(cx_Oracle.LONG_STRING, arraysize = cursor.arraysize)
        if defaultType == cx_Oracle.BLOB:
            return cursor.var(cx_Oracle.LONG_BINARY, arraysize = cursor.arraysize)
    

    See the cx_Oracle example at https://github.com/oracle/python-cx_Oracle/blob/master/samples/ReturnLobsAsStrings.py

    0 讨论(0)
  • 2021-01-22 11:10

    You have to use the cx_oracle.LOB.read() method to get the content of the LOB object:

    f.write(row[2].read())
    
    0 讨论(0)
  • 2021-01-22 11:10

    Implemented what @blhsing suggested and it worked out perfectly

        for row in cur:
            filename = path +  "notes_" + str(row[0]) + "_" + str(row[1]) + ".txt"      
            print(row[2].read())
            f = open(filename, "wb")
            f.write(row[2].read())
            f.close()        
    
    0 讨论(0)
提交回复
热议问题