【问题标题】:Update statement not working in python?更新语句在 python 中不起作用?
【发布时间】:2016-02-12 15:21:20
【问题描述】:

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

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

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

【问题讨论】:

    标签: python oracle jdbc


    【解决方案1】:

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

    stmt.execute(updateQuary)
    conn.commit()
    

    【讨论】:

    • 我们不能在“stmt.execute(updateQuary)”中走得更远。它卡在这一行,没有给出任何异常。
    【解决方案2】:

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

    【讨论】:

    • 是的,那是我的错误。解决问题。现在它正在工作......谢谢......:D
    猜你喜欢
    • 2019-11-07
    • 1970-01-01
    • 1970-01-01
    • 2015-07-16
    • 2017-09-27
    • 1970-01-01
    • 1970-01-01
    • 2018-04-16
    相关资源
    最近更新 更多