简体   繁体   English

在 Python 脚本中执行 SQL 存储过程

[英]Execute a SQL Stored Procedure within a Python Script

I'm trying to execute a SQL stored proc within a Python script and having issues with the syntax.我正在尝试在 Python 脚本中执行 SQL 存储过程并且遇到语法问题。 I have tried a combination of various examples I have found but none seem to work.我尝试了我发现的各种示例的组合,但似乎没有一个工作。 Here's what I have tried:这是我尝试过的:

county = 100200
confirmed = 123456
death = 12
labTestCount = 0    
#Example1
conn.execute('{CALL [spInsertCOVIDData](@County,@Confirmed,@Death,@LabTestCount)}', ('county', 'confirmed', 'death', 'labTestCount'))

#Example2
query = "EXEC [spInsertCOVIDData] (@County,@Confirmed,@Death,@LabTestCount)", (county, confirmed, death, labTestCount)
conn.execute(query)

#Example3
query = "EXEC [spInsertCOVIDData] @County=?, @Confirmed=?, @Death=?, @LabTestCount=?",(county, confirmed, death, labTestCount)
conn.execute(query)

#Example4
query = "EXEC [spInsertCOVIDData] @County='county', @Confirmed='confirmed', @Death='death', @LabTestCount='labTestCount'"
conn.execute(query)

I get a mixture of various error from:我从以下方面得到各种错误的混合:

('The SQL contains 0 parameter markers, but 4 parameters were supplied', 'HY000')

or或者

The first argument to execute must be a string or unicode query.

You may try to use parameters in your statement using ?您可以尝试使用? as a placeholder and pass the actual values of each parameter:作为占位符并传递每个参数的实际值:

county = 100200
confirmed = 123456
death = 12
labTestCount = 0

query = "EXEC [spInsertCOVIDData] @County=?, @Confirmed=?, @Death=?, @LabTestCount=?"
conn.execute(query, (county, confirmed, death, labTestCount))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM