我编写了一个简单的python程序,它成功地获取了数据表单数据库。但无法更新数据库中的表。 执行更新语句时,它会卡住,没有任何事情发生,没有任何异常。
我的代码如下。知道为什么会这样吗?
from java.sql import DriverManager
def updateDB():
url = "jdbc:oracle:thin:@192.1.1.1:1521:auid"
uname = "dbtstj1"
pword = "dbtstj321"
conn = None
stmt = None
try:
conn = DriverManager.getConnection(url,uname,pword)
stmt = conn.createStatement()
rs = stmt.executeQuery("select PKG_NAME from PkgData")
while rs.next():
print rs.getString(1)
pkgName = "'Test Pkg Name'"
pkgID = "'T1234'"
updateQuary = "UPDATE PkgData SET PKG_NAME =%s WHERE PKG_ID =%s" %(pkgName, pkgID)
stmt.execute(updateQuary)
except Exception , e:
print 'Error:', e[0]
finally:
if stmt is not None:
stmt.close()
if conn is not None:
conn.close()
updateDB()
答案 0 :(得分:1)
您需要将更改提交到数据库:
stmt.execute(updateQuary)
conn.commit()
答案 1 :(得分:0)
当查询请求数据类型和所需数据类型不同时,可能会发生这类问题。 似乎与数据库的数据类型和您的查询不匹配。您可以使用查询重新检查数据库的数据类型吗? 对于Ex:PKG_ID =%s可以是数据库中的另一种数据类型,如数字等等......