使用 pyodbc 将行插入 SQL 服务器

Inserting Rows to SQL SERVER using pyodbc

我在 linux 机器 (Ubuntu 16.04).Ubuntu 上使用 pyodbc 连接到 SQL 服务器的时间很糟糕。

conn = pyodbc.connect(r'DRIVER={FreeTDS};PORT=**; SERVER=**; DATABASE=**;UID=AA;PWD=hfghj;')
curr = conn.cursor()
curr.fast_executemany = True
query = "INSERT INTO dbo.STG_CONTACTABILITY_SCORE VALUES (?" + ",?"*21 + ")"
sql_data = list(map(tuple, i.values))
curr.executemany(query, sql_data)

我收到以下错误:

('HY004', '[HY004] [FreeTDS][SQL Server]Invalid data type (0) (SQLBindParameter)')

当我将连接字符串更改为:

时,相同的插入查询在我的 windows 笔记本电脑上运行
conn = pyodbc.connect(r'DRIVER={SQL Server};PORT=**; SERVER=**; DATABASE=**; UID=AA; PWD=hfghj;')

如果我在 Linux 机器上将 DriverFreeTDS 更改为 SQL SERVER 我收到以下错误:

pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'SQL Server' : file not found (0) (SQLDriverConnect)")

我搜索了答案,但没有太多答案可以解决我的问题。 从 Linux 机器连接到 SQL 服务器的驱动程序是什么?

What is the driver to connect to SQL SERVER from Linux machine?

如果您按照

中所述安装 Microsoft 的 ODBC 驱动程序

Installing the Microsoft ODBC Driver for SQL Server on Linux and macOS

然后您可以使用 DRIVER=ODBC Driver 17 for SQL ServerDRIVER=ODBC Driver 13 for SQL Server,具体取决于您选择的版本。