Python cx\u oracle如何更新blob列

Python cx\u oracle如何更新blob列,python,blob,cx-oracle,Python,Blob,Cx Oracle,有人能帮我更新oracle中的blob数据吗 所以,我想: file = open ('picture.jpg','rb') ext = 'jpg' content = file.read () file.close () db = cx_Oracle.connect('user', 'pwd', dsn_tns) db=db.cursor() sqlStr = "update table_name set column1=:blobData, column2=" + str(ext) + "

有人能帮我更新oracle中的blob数据吗

所以,我想:

file = open ('picture.jpg','rb') 
ext = 'jpg'
content = file.read ()
file.close ()
db = cx_Oracle.connect('user', 'pwd', dsn_tns)
db=db.cursor()
sqlStr = "update table_name set column1=:blobData, column2=" + str(ext) + " where id = 1"
db.setinputsizes (blobData = cx_Oracle.BLOB)
db.execute (sqlStr, {'blobData': content})
db.execute ('commit')
db.close()
最后,我得到了这样的错误:

cx_Oracle.DatabaseError: ORA-00904: "JPG": invalid identifier

cx_Oracle 6.0不允许您在BLOB打开导致DPI-1054错误时关闭连接

cx_Oracle.DatabaseError:DPI-1054:存在open语句或LOB时无法关闭连接

除了Leo的答案之外,还可以通过删除BLOB变量来解决这个问题

file = open ('picture.jpg','rb') 
ext = 'jpg'
content = file.read ()
file.close ()
con = cx_Oracle.connect('user', 'pwd', dsn_tns)
db = con.cursor()
blobvar = db.var(cx_Oracle.BLOB)
blobvar.setvalue(0,content)
sqlStr = "update table_name set column1=:blobData, column2="jpg" where id = 1"
db.setinputsizes (blobData = cx_Oracle.BLOB)
db.execute (sqlStr, {'blobData': blobvar})

del blobvar  #  <-------- 

db.execute ('commit')
db.close()
con.close()
file=open('picture.jpg','rb')
ext='jpg'
content=file.read()
file.close()
con=cx\u Oracle.connect('user','pwd',dsn\u tns)
db=con.cursor()
blobvar=db.var(cx_Oracle.BLOB)
blobvar.setvalue(0,内容)
sqlStr=“updatetable\u name set column1=:blobData,column2=“jpg”其中id=1”
db.setinputsizes(blobData=cx_Oracle.BLOB)
db.execute(sqlStr,{'blobData':blobvar})
德尔布卢瓦尔#
file = open ('picture.jpg','rb') 
ext = 'jpg'
content = file.read ()
file.close ()
con = cx_Oracle.connect('user', 'pwd', dsn_tns)
db = con.cursor()
blobvar = db.var(cx_Oracle.BLOB)
blobvar.setvalue(0,content)
sqlStr = "update table_name set column1=:blobData, column2="jpg" where id = 1"
db.setinputsizes (blobData = cx_Oracle.BLOB)
db.execute (sqlStr, {'blobData': blobvar})

del blobvar  #  <-------- 

db.execute ('commit')
db.close()
con.close()