CX ORACLE-Python ::更新语句不起作用

时间:2019-06-25 13:15:12

标签: python sql python-3.x cx-oracle

我遇到了奇怪的问题,我无法使用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()

更新语句不适用于非数字更新值,如上所示

1 个答案:

答案 0 :(得分:1)

为了提高性能并消除对引用和SQL注入的担忧,最好使用绑定变量。因此,您的代码应如下所示:

statement = 'UPDATE TEST_JT SET EMP_NAME = :1 WHERE EMP_ID = :2'
c.execute(statement, ["JSXX YA", 1])