更新语句在python中不起作用?

2024-09-29 22:32:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了一个简单的python程序,成功地从数据库中获取数据。但无法更新数据库中的表。 当执行update语句时,它被卡住了,什么都没有发生,没有任何异常。在

我的代码如下。知道为什么吗?在

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()

Tags: namefromnone数据库urlpkgconnprint
2条回答

当查询请求数据类型和所需数据类型不同时,可能会发生这些类型的问题。 似乎与数据库的数据类型和您的查询不匹配。你能用你的查询重新检查数据库的数据类型吗。 例如:PKG_ID=%s可以是数据库中的另一种数据类型,如digital或etc。。。在

您需要将更改提交到数据库:

stmt.execute(updateQuary)
conn.commit()

相关问题 更多 >

    热门问题