在python中构造oracle查询时在字符串中添加单引号的方法



我有一个创建查询并传递两个字符串参数的方法。但当我测试它时,它在单引号"之前有转义字符"。

查询只能接受字符串形式的本机查询

我也尝试了字符串替换方法,但不起作用

replace('\', '')

这是代码

def update_query(self, status, row_id):
return '''UPDATE TABLE SET STATUS = {0} WHERE ID = {1}'''.format(status, row_id)

以下是示例输出:

'UPDATE TABLE SET STATUS = 'Success' WHERE ID = 1'

谢谢

您也可以使用f-string来格式化字符串


def update_query(self,status, row_id):
return f"UPDATE TABLE SET STATUS = '{status}' WHERE ID = {row_id}"
>>> update_query("Success",1)
"UPDATE TABLE SET STATUS = 'Success' WHERE ID = 1"

我认为你绝对应该在这里使用预先准备好的语句,而其他答案似乎并不推荐(无论出于何种原因(。尝试使用以下方法:

sql = "UPDATE TABLE SET STATUS = :status WHERE ID = :id"
cursor.prepare(sql)
cursor.execute(None, {'status':status, 'id':row_id})

在这里使用预制语句的一个优点是,它让用户不必担心如何正确地转义查询中的文字占位符。相反,我们只需要将一个具有正确类型的变量绑定到语句,其余的由Oracle处理

您需要在代码中添加

def update_query(self, status, row_id):
return '''UPDATE TABLE SET STATUS = '{0}' WHERE ID = {1}'''.format(status, row_id)

最新更新