我遇到了奇怪的问题,我无法使用UPDATE语句从Python更新ORACLE DB表。数据库连接很好,我可以提取记录。
每当我更新字符/字母数字字符串值时,都会出现以下错误。
连续出现错误:: cx_Oracle.DatabaseError:ORA-00904::无效的标识符
令人惊讶的是,对于“数字字段”值更新,这不是问题。
Python版本-3.7 CX_Oracle-7.1 Windows 10(个人计算机) Oracle 11.2 R2
#python Code
import cx_Oracle
conn = cx_Oracle.connect('SYSTEM/Aditya201$@//localhost:1521/JTORCL')
c = conn.cursor()
# Update Rows
#statement = 'UPDATE TEST_JT SET EMP_NAME = "JSXX YA" WHERE EMP_ID = 1'
c.execute(statement)
conn.commit()
c.close()
conn.close()
更新语句不适用于非数字更新值,如上所示
答案 0 :(得分:1)
为了提高性能并消除对引用和SQL注入的担忧,最好使用绑定变量。因此,您的代码应如下所示:
statement = 'UPDATE TEST_JT SET EMP_NAME = :1 WHERE EMP_ID = :2'
c.execute(statement, ["JSXX YA", 1])