Существует проблема с Oracle ORA-01036: недопустимое имя / номер переменной - PullRequest
0 голосов
/ 19 марта 2020

Мне нужно подставить следующие значения в запрос выбора. но я получил ошибку, как я упоминал ниже

def addSoil(self):
    name = self.ent_name.get()
    texture = self.ent_texture.get()
    colour = self.ent_colour.get()
    capacity = self.ent_capacity.get()
    equation = self.ent_equation.get()

    try:
        con = cx_Oracle.connect('hr/hr@192.168.56.1/xepdb1')
        cursor = con.cursor()

        cursor.execute('INSERT INTO soildata (soil_name, soil_text, soil_colour, soil_waterhold, soil_chemicalequ) '
                       'VALUES(%s,%s,%s,%s,%s)', (name,texture,colour,capacity,equation))

        con.commit()

    except cx_Oracle.DatabaseError as e:
        print("There is a problem with Oracle", e)

    finally:
        if cursor:
            cursor.close()
        if con:
            con.close()

1 Ответ

0 голосов
/ 20 марта 2020

Вы использовали неправильный синтаксис заполнителя. Вам нужно сделать что-то вроде этого:

cursor.execute('INSERT INTO soildata (soil_name, soil_text, soil_colour, soil_waterhold, soil_chemicalequ) '
               'VALUES(:1,:2,:3,:4,:5)', (name,texture,colour,capacity,equation))

Вы также можете просмотреть документацию и получить дополнительную помощь.

...