DatabaseError: ORA-00911: ungültiges Zeichen

Habe ich folgenden code zum ausführen von sql-quesry in Oracle-db:

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()

Ich erhielt den Fehler: DatabaseError: <cx_Orac...40066758>.

Warum sehe ich nicht die vollständige Fehlermeldung in der Konsole? Sieht aus wie exception-Teil nicht ausgeführt.
Ich benutze python 2.5 und oracle 10.2.0 auf linux.

Update: Nach einigen Recherchen fand ich heraus, dass der Fehler DatabaseError: ORA-00911: invalid character.

Mein sql-string ist wie: sql = "SELECT ID FROM TABLE WHERE DESC = '" + str(desc[0]) + "';". Dies erzeugt string: "SELECT ID FROM TABLE WHERE DESC = '3312';"

Wenn ich führen Sie die gleiche Anfrage in SQL Developer funktioniert es. Also, was mache ich falsch?

  • Entfernen Sie die nachfolgende Semikolon in Ihre Abfrage-string. Die OCI brauchen nur deine Abfrage.. Keine Abschlusswiderstände erforderlich!
InformationsquelleAutor khris | 2014-07-29
Schreibe einen Kommentar