【发布时间】:2014-09-20 23:52:52
【问题描述】:
我有以下代码在 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: invalid character。
我的 sql 字符串是这样的:sql = "SELECT ID FROM TABLE WHERE DESC = '" + str(desc[0]) + "';"。这是生成的字符串:"SELECT ID FROM TABLE WHERE DESC = '3312';"
当我在 SQL Developer 中执行相同的请求时,它可以工作。那我做错了什么?
【问题讨论】:
-
删除查询字符串中的尾随分号。 OCI 只需要您的查询.. 不需要终止符!