【问题标题】:CX ORACLE - Python :: Update Statement not workingCX ORACLE - Python :: 更新语句不起作用
【发布时间】:2019-11-07 08:19:35
【问题描述】:

我正面临着严重的问题,我无法使用 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()

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

【问题讨论】:

  • Oracle 对char 常量使用单引号。

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


【解决方案1】:

为了提高性能并消除对引用和 SQL 注入的担忧,使用绑定变量要好得多。所以你的代码应该是这样的:

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

【讨论】:

    猜你喜欢
    • 2016-02-12
    • 1970-01-01
    • 1970-01-01
    • 2018-08-14
    • 2015-07-16
    • 2017-09-27
    • 1970-01-01
    相关资源
    最近更新 更多