0

我正在尝试在 try except 块中从表中删除特定行,但出现以下错误

    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 块中抛出了某种错误 oracle 数据库错误,看到它会很有用,但是代码中的行

 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 回答