我在学习python的初期,我的要求是基于Oracle Table中的一列,即使用字典键对值更新其他列。我的字典看起来像这样
{'美国':'美国','法国':'欧洲','英国':'欧洲'}
因此,当“国家/地区”列为“美国”时,描述列应更新为“美国人”,在数据库连接后,这是我的代码
query = "select country from details_table "
cursor.execute(query)
returnrows = cursor.fetchone()
while returnrows is not None:
pickedvalue=returnrows[0]
mainvalue=file_dictionary[pickedvalue]
updatequery = "update details_table set description='%s' where country='%s'"
cursor.execute(updatequery %(mainvalue,pickedvalue))
returnrows = cursor.fetchone()
[当我执行此即时消息时出现错误“不是查询”,因此我尝试每次更改引文时都会得到不同的错误
updatequery = "update details_table set description=%s where country=%s"
updatequery = "update details_table set description='%s' where country=%s"
对于以上两个查询,我得到了ORA-00933:SQL命令未正确结束
updatequery = "update details_table set description=%s where country='%s'"
为此,我得到了ORA-00904:“ AMERICAN”:无效的标识符
有人可以告诉我这将是正确的查询,我什至尝试如下但没有运气
updatequery="update details_table set description={} where country='{}'"
sql=updatequery.format(main_value,pickedvalue)
cursor.execute(sql)
我不知道魔术是什么,它从此开始工作,我无法理解这段代码与上面的代码之间的逻辑区别是什么,请让我知道
query = "select country from details_table"
cursor.execute(query)
returnrows = cursor.fetchall()
for rows in returnrows:
for pickedvalue in rows:
requiredvalue = file_dictionary[pickedvalue]
print(requiredvalue)
updatequery = "update details_table set description='%s' where country='%s'"
cursor.execute(updatequery % (requiredvalue, pickedvalue))
connection.commit()