在 python 代码中执行更新查询时出现此错误

Posted

技术标签:

【中文标题】在 python 代码中执行更新查询时出现此错误【英文标题】:I am getting this error while executing update query in python code 【发布时间】:2020-10-15 13:08:50 【问题描述】:

代码:-

upd=(f"update order_tb set ('name=:self.name.get()','contact=:self.contact.get()','address=:self.address.get()','store=:self.combo_store.get()','groceries=:self.groceries.get()','O_ID',where o_id=:O_ID")
cur.execute(upd) 

错误:-

cx_Oracle.DatabaseError: ORA-01747: invalid user.table.column, table.column, or column specification                                                                                                  

【问题讨论】:

您应该修改问题标题以反映所提出的问题。 “我收到 x 错误”不会提出问题或提供有关该错误的任何信息。这将有助于相关人员找到问题。类似于“尝试在 python 代码中执行更新查询时 Oracle 中的 ORA-01747。” 这能回答你的问题吗? ORA-01747: invalid user.table.column, table.column, or column specification 尝试在 cur.execute(upd) 之前打印 upd 并检查语句的语法是否正常,我的意思是表名、列名……以及是否有任何多余的字符。跨度> 【参考方案1】:

使用您的fstring,您将向 Oracle 发送类似于此语句的内容(简化)

update order_tb set ('name=:X1','contact=:X2','address=:X3','store=:X4','groceries=:X5','o_id',where o_id=:O_ID 

这确实会导致SQL Error: ORA-01747: invalid user.table.column, table.column, or column specification,因为您完全违反了有效的UPDATE 语法。

您可能的意图类似于以下陈述(不确定您对 'O_ID' 部分的意图)

update order_tb set  name=:X1, contact=:X2, address=:X3, 
                     store=:X4, groceries=:X5 
where o_id=:O_ID

所以一般建议是在执行之前打印UPDATE 语句并检查语法

【讨论】:

以上是关于在 python 代码中执行更新查询时出现此错误的主要内容,如果未能解决你的问题,请参考以下文章

执行歌词命令时出现此错误:DiscordAPIError:无法发送空消息

未设置查询语言:为什么在使用csv数据适配器时出现此错误?

在 Dreamweaver 中创建记录集时出现此错误 - 使用 MAMP

爬坑Python 3.6 在 Socket 编程时出现类型错误 TypeError: a bytes-like object is required, not 'str'(示例代码(代

尝试使用匕首刀柄的代码时出现此错误,错误:[Hilt] java.lang.reflect.InvocationTargetException(无错误消息)

编译代码时出现此错误,我已从另一个系统复制代码。我该如何解决这个错误?