我想处理list of tuple个值到SQL服务器使用的Python.我认为我们可以try 使用循环来处理cursor.execute,但这不是我的要求.我想用参数化的方式处理元组列表,作为优化目的的一部分.

我试过了,但不起作用.

lt = [('a','temp_a','001'),('b','temp_b','002')]

sql = '''
EXECUTE [dbo].[mystrored_proc] 
@table = %(parm)s
'''
conn = pymssql.connect(
server=server, 
user=user, 
password=password, 
database=database)

cursor = conn.cursor()
cursor.execute(query, {'parm': lt})

推荐答案

您不能将元组列表传递给cursor.execute().你需要使用pymssql次中的Table次.

import pymssql

lt = [('a', 'temp_a', '001'), ('b', 'temp_b', '002')]

# Define stored procedure with parameter @table
sql = '''
DECLARE @table AS dbo.MyTableType;
INSERT INTO @table (Column1, Column2, Column3) VALUES (%s, %s, %s);
EXEC [dbo].[mystrored_proc] @table;
'''

cursor.executemany(sql, lt)

# Commit and close the connection

Python相关问答推荐

在Python中,如何初始化集合列表脚本的输出

将大小为n*512的数组绘制到另一个大小为n*256的数组的PC组件

情节生成的饼图文本超出页面边界

Django文件上传不起作用:文件未出现在媒体目录或数据库中

具有多个组的条形图的不同y标度

两极:如何分割一个大 pyramid 并并行保存每个

从包含数字和单词的文件中读取和获取数据集

如何使用没有Selenium的Python在百思买着陆页面上处理国家/地区 Select ?

如何在Python中使用io.BytesIO写入现有缓冲区?

比较两个二元组列表,NP.isin

使用Keras的线性回归参数估计

由于NEP 50,向uint 8添加-256的代码是否会在numpy 2中失败?

将整组数组拆分为最小值与最大值之和的子数组

删除任何仅包含字符(或不包含其他数字值的邮政编码)的观察

Pandas计数符合某些条件的特定列的数量

连接一个rabrame和另一个1d rabrame不是问题,但当使用[...]'运算符会产生不同的结果

用砂箱开发Web统计分析

在pandas/python中计数嵌套类别

找到相对于列表索引的当前最大值列表""

基于另一列的GROUP-BY聚合将列添加到Polars LazyFrame