我有以下代码在Oracle db中执行sql问题:
try:
conn = cx_Oracle.connect(DB_LOGIN+"/"+DB_PWD+"@"+SID)
cursor = connection.cursor()
cursor.execute(sql)
connection.commit()
cursor.close()
conn.close()
except cx_Oracle.DatabaseError, ex:
error, = ex.args
print 'Error.code =', error.code
print 'Error.message =' , error.message
print 'Error.offset =', error.offset
conn.rollback()
我收到错误:DatabaseError:< cx_Orac ... 40066758>.
为什么我在控制台中看不到完整的错误消息?看起来异常部分未执行.
我在linux上使用python 2.5和oracle 10.2.0.
更新:经过一些调查后我发现错误是DatabaseError:ORA-00911:无效字符.
我的sql字符串如下:sql =“SELECT ID FROM TABLE WHERE DESC =’”str(desc [0])“’;”.这是生成的字符串:“SELECT ID FROM TABLE WHERE DESC =’3312′;”
当我在SQL Developer中执行相同的请求时,它可以工作.那么我做错了什么?