Почему мой sql не выполняется? - PullRequest
1 голос
/ 18 марта 2011

У меня есть скрипт Python, который должен обновить информацию базы данных.Итак, в моем методе init () я запускаю соединение.Но когда я вызываю метод обновления, сценарий не дает мне никакого ответа, кажется, что он находится в бесконечном цикле.

def update(self,id,newDescription):
     try:
         sql="""UPDATE table SET table.new_string=:1 WHERE table.id=:2"""                                                                               
         con=self.connection.cursor()
         con.execute(sql,(newDescription,id))
         con.close()
     except Exception,e:
         self.errors+=[str(e)]

Что я пробовал до сих пор:

  • Измените запрос, просто чтобы убедиться, что соединение в порядке.Когда я это сделал (я использовал «SELECT info from table»), скрипт работал.
  • Я думал, что мой запрос был неправильным, но когда я выполняю его в программе SQLDeveloper, он идет правильно.

Что может происходить?

Спасибо

Ответы [ 2 ]

2 голосов
/ 18 марта 2011

Вы забыли позвонить commit.

1 голос
/ 18 марта 2011

Не уверен, как это сделать в скрипте Python, но я думаю, что вам нужно вызвать "commit" перед закрытием соединения. В противном случае oracle откатит вашу транзакцию.

Попробуйте добавить con.commit () перед close ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...