2011-03-18 181 views
1

我有一个需要更新数据库信息的python脚本。 因此,在我的init()方法中,我开始连接。但是当我打电话给 的更新方法时,脚本没有给我任何答案,看起来好像是 就像是进入了一个无限循环。为什么我的sql不执行?

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 程序中执行它时,它是正确的。

会发生什么?

感谢

+0

首先,您是否检查了是否有任何异常? – 2011-03-18 11:21:01

+0

是的。没有例外。 – 2011-03-18 11:26:16

回答

2

你忘记打电话commit

+0

脚本停在con.execute行中。 – 2011-03-18 11:25:31

+3

可以挂在锁上吗? – 2011-03-18 11:40:35

+0

完美,现在可以工作 – 2011-03-18 11:49:35

1

不知道如何在python脚本中做到这一点,但我认为你需要在关闭连接之前调用“commit”。否则,oracle将回滚您的事务。

尝试在关闭前添加con.commit()

相关问题