在 Python 脚本中执行 SQL 存储过程
Execute a SQL Stored Procedure within a Python Script
我正在尝试在 Python 脚本中执行 SQL 存储过程,但语法有问题。我尝试了我发现的各种示例的组合,但 none 似乎有效。这是我尝试过的:
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)
我混合了各种错误:
('The SQL contains 0 parameter markers, but 4 parameters were supplied', 'HY000')
或
The first argument to execute must be a string or unicode query.
您可以尝试在语句中使用参数,使用 ?
作为占位符并传递每个参数的实际值:
county = 100200
confirmed = 123456
death = 12
labTestCount = 0
query = "EXEC [spInsertCOVIDData] @County=?, @Confirmed=?, @Death=?, @LabTestCount=?"
conn.execute(query, (county, confirmed, death, labTestCount))
我正在尝试在 Python 脚本中执行 SQL 存储过程,但语法有问题。我尝试了我发现的各种示例的组合,但 none 似乎有效。这是我尝试过的:
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)
我混合了各种错误:
('The SQL contains 0 parameter markers, but 4 parameters were supplied', 'HY000')
或
The first argument to execute must be a string or unicode query.
您可以尝试在语句中使用参数,使用 ?
作为占位符并传递每个参数的实际值:
county = 100200
confirmed = 123456
death = 12
labTestCount = 0
query = "EXEC [spInsertCOVIDData] @County=?, @Confirmed=?, @Death=?, @LabTestCount=?"
conn.execute(query, (county, confirmed, death, labTestCount))