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!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Löschen Sie das Semikolon: