使用pyodbc将行插入SQL SERVER

时间:2018-03-22 14:35:26

标签: sql-server pyodbc unixodbc

我很难用Linux机器(Ubuntu 16.04)中的pyodbc连接到SQL Server。

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]无效的数据类型(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]无法打开   lib'SQL Server':找不到文件(0)(SQLDriverConnect)“)

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

1 个答案:

答案 0 :(得分:0)

  

从Linux机器连接到SQL SERVER的驱动程序是什么?

如果您按照

中的说明安装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,具体取决于您选择的版本。