DatabaseError:ORA-00911:无效字符

khr*_*ris 9 python oracle cx-oracle

我有以下代码在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()
Run Code Online (Sandbox Code Playgroud)

我收到了错误: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中执行相同的请求时,它可以工作.那么我做错了什么?

Ted*_*zed 23

删除分号:

sql = "SELECT ID FROM TABLE WHERE DESC  = '" + str(desc[0]) + "'"
Run Code Online (Sandbox Code Playgroud)

  • 真的很有帮助@Tedezed (2认同)