在cx_oracle中使用execute时INSERT无效,如何解决?
我刚开始接触cx_oracle。现在我已经建立了连接,并且可以使用execute命令创建和删除表。
我遇到的问题是,当我尝试在execute中使用“INSERT INTO ...”时,没有出现错误,但也没有存储任何值(我通过在shell中使用sqlplus检查确认了这一点)。我使用的代码是:
table_name = "T1"
column = "D"
insert_value = "test value"
sqlcode = "INSERT INTO "+table_name+" ("+column+") VALUES ('"+insert_value+"')"
cursor.execute(sqlcode)
请帮帮我,任何帮助都非常感谢。
提前谢谢你们。J
2 个回答
2
奇怪的是,你的代码没有报错;当然,前提是你没有(可怜地)调用了游标对象的 connect
。
在你所有的代码之前,你需要有类似下面的内容:
conn = cx_Oracle.connect(usr, pwd, url)
cursor = conn.cursor()
接下来,把 connect.execute(sqlcode)
替换成 cursor.execute(sqlcode)
。
12
为什么 cursor.commit
能用,而 Cursor 里的方法却没有 commit 呢?其实,commit 这个方法是连接(connections)里有的,所以应该是这样:
connection.commit()
当你使用 cursor.commit()
时,会返回一个错误信息:
AttributeError: 'cx_Oracle.Cursor' 对象没有 'commit' 这个属性