为什么我的sql不执行?
我有一个 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)]
到目前为止我已经尝试过:
- 更改查询,只是为了查看连接是否正常。当我这样做时(我使用“从表中选择信息”),脚本起作用了。
- 我以为我的查询是错误的,但是当我在SQLDeveloper中执行它时 程序,一切顺利。
会发生什么?
谢谢
I have a python script that needs to update a database information.
So, in my init() method, I start the connection. But when I call
the update method, the script does not give me any answer, it seems
like it is into an infinite loop.
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)]
What I've tried so far:
- Change the query, just to see if the connection is alright. When I did that (I used 'SELECT info from table'), the script worked.
- I thought that my query was wrong, but when I execute it in SQLDeveloper
program, it goes right.
What can be happening?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您忘记调用
commit
。You are forgetting to call
commit
.不确定如何在 python 脚本中执行此操作,但我认为您需要在关闭连接之前调用“提交”。否则,oracle 将回滚您的事务。
尝试在 close() 之前添加 con.commit()
Not sure about how to do it in python script, but i think you need to call a "commit" before closing connection. Otherwise oracle rollsback your transaction.
Try adding con.commit() before close()