CX ORACLE - Python :: Оператор обновления не работает - PullRequest
0 голосов
/ 25 июня 2019

Я сталкиваюсь со странной проблемой. Я не могу обновить таблицу ORACLE DB из Python, используя инструкцию UPDATE.Соединение с БД хорошее, и я могу получить записи.

Всякий раз, когда я обновляю значения символов / буквенно-цифровых строк, я получаю следующую ошибку.

Постоянно получаю ошибку :: cx_Oracle.DatabaseError: ORA-00904:: неверный идентификатор

Удивительно, но для обновления значения числового поля это не проблема.

Версия Python - 3.7 CX_Oracle - 7.1 Windows 10 (Personal Machine) 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 Ответ

1 голос
/ 26 июня 2019

Для повышения производительности и устранения проблем, связанных с цитированием и внедрением SQL, гораздо лучше использовать переменные связывания. Итак, ваш код должен выглядеть примерно так:

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