INSERT не работает в cx_oracle при использовании с execute.Как заставить это работать? - PullRequest
2 голосов
/ 13 апреля 2011

Я новичок в cx_oracle.Я установил соединение, и я могу создать и удалить таблицу, используя execute.

Я терплю неудачу, когда пытаюсь использовать INSERT INTO ... в execute.Он не показывает никаких ошибок, но и не хранит никаких значений (я подтвердил это, проверив, был ли вход выполнен с использованием sqlplus из оболочки).Код, который я использовал:

table_name = "T1"
column = "D"
insert_value = "test value"

sqlcode = "INSERT INTO "+table_name+" ("+column+") VALUES ('"+insert_value+"')"
cursor.execute(sqlcode)

Пожалуйста, помогите мне, любая помощь будет оценена.

Спасибо заранее.J

Ответы [ 2 ]

8 голосов
/ 22 мая 2013

Как может cursor.commit работать, когда методы в Cursor не имеют фиксации, у соединений есть этот метод, и поэтому он должен быть:

    connection.commit()

Использование cursor.commit() возвращает:
AttributeError: 'cx_Oracle.Cursor' object has no attribute 'commit'

2 голосов
/ 14 апреля 2011

Странно, что вы не получаете ошибку с этим кодом;это, конечно, если вы (к сожалению) не вызываете объект Cursor, connect.

Вам нужно где-то подобное, прежде чем весь ваш код:

conn = cx_Oracle.connect(usr, pwd, url)
cursor = conn.cursor()

Затем перейдите кзаменить connect.execute(sqlcode) на cursor.execute(sqlcode).

...