首页 > 解决方案 > pypyodbc 查询中的字符串无法识别

问题描述

我最近决定将我的一些脚本从 jupyter notebook 迁移到普通的旧 python 脚本 (.py) 有几个原因。在 jupyter 中,一切正常,但是相同的代码在 SQL 中没有做任何事情。我知道这个过程是正确的,因为如果我直接在服务器上运行它,它就可以了。

我的代码是:

query = 'EXEC [dbo].[kpi_init] '+kpi+';'
cursor.execute(query)

我尝试添加引号,像这样,没有成功:

query = 'EXEC [dbo].[kpi_init] \''+kpi+'\';'

我尝试使用参数化查询,像这样,没有成功:

query = 'EXEC [dbo].[kpi_init] ?;'
cursor.execute(query, [kpi])

值得一提的是,kpi 是一个简单的变量,包含 A00 或 X23 之类的东西,它就在那里,因为我可以将它打印出来并用它来触发外部函数。只有我的 SQL 代码不起作用。我错过了什么吗?

谢谢

标签: pythonvariablesparametersodbc

解决方案


试试这个:

query = f"EXEC [dbo].[kpi_init] '{kpi}'"
cursor.execute(query)

推荐阅读