0

tryexceptブロックでテーブルから特定の行を削除しようとしていますが、次のエラーが発生します

    self.returnvals['ERROR_CD']   = error.code
AttributeError: 'str' object has no attribute 'code'

コード:

try:
    # code deleting from a table
except cx_Oracle.DatabaseError, ex:
    error, = ex.args    
    self.conn.rollback()
    self.returnerr['ID']    = 0
    self.returnerr['ERROR_CD']   = error.code
    self.returnerr['ERROR_MSG']  = error.message
    self.returnerr['TABLE_NAME'] = self.debug_val
4

1 に答える 1

-1

例外処理が壊れています。ある種のエラーオラクルデータベースエラーがtryブロック内にスローされており、それを確認すると便利ですが、コードの行は

 self.returnerr['ERROR_CD']   = error.code

.code「エラー」オブジェクトは単なる文字列であり、属性を持たないため、報告しているエラーをスローしています。

また...

delete from a table  

試行している実際のDMLのようには見えません。実際のDELETEステートメントを投稿してみませんか。構文エラーがあるかどうかを確認できるかもしれません。これがリテラルコードである場合は、ドキュメントを読む必要があります。私はそれがもっと似ているはずだと信じています:

import cx_Oracle as db
conn = db.connection()
cur = conn.cursor()
cur.execute("DELETE FROM TABLE WHERE somecolumn = someval")
conn.commit()
conn.close
于 2013-02-21T16:09:50.817 に答える