gpt4 book ai didi

python - 为什么使用 fast_executemany=True 调用 cursor.executemany() 会导致段错误?

转载 作者:太空宇宙 更新时间:2023-11-04 00:13:45 29 4
gpt4 key购买 nike

我有一个 pydodbc 游标连接到 Azure SQL 数据库,并安装了最新版本的 FreeTDS,在 Mac OS Sierra 10.12.6 上运行:

cursor.execute("CREATE TABLE test(a INT, b INT)")
cursor.commit()

这个可以,很好,那我试试

cursor.fast_executemany=True
cursor.execute("INSERT INTO test(a, b) VALUES(?,?)", [(1,2),(3,4),(5,6)])

这会导致段错误,我看到的唯一错误消息是 segmentation fault: 11

如果我没有设置 cursor.fast_executemany=True,那么代码就可以正常工作。

最佳答案

我能够使用 FreeTDS 1.00.94 和 unixODBC 2.3.6 在 Xubuntu 16.04 下重现您的“段错误”问题。

fast_executemany = True 使用称为“参数数组”的 ODBC 功能,并非所有 ODBC 驱动程序都支持该功能。显然 FreeTDS ODBC 是不支持它的驱动程序之一。

如果你真的需要使用fast_executemany = True,你可以使用Microsoft's ODBC Driver for SQL Server .它确实支持 ODBC 参数数组。

关于python - 为什么使用 fast_executemany=True 调用 cursor.executemany() 会导致段错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51618170/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com