Pandas fast_ExecuteMay=True抛出DBAPIError:sqlalchemy 1.3.5版中的函数序列错误

Pandas fast_ExecuteMay=True抛出DBAPIError:sqlalchemy 1.3.5版中的函数序列错误,pandas,sqlalchemy,Pandas,Sqlalchemy,自2019-03-04发布SQLAlchemy 1.3.0以来, sqlalchemy现在支持 engine=create\u engine(sqlalchemy\u url,fast\u executemany=True) 对于mssql+pyodbc方言。即 不再需要定义函数和使用 @event.listens_for(engine, 'before_cursor_execute'). 但是,当我试图将一个简单的测试数据帧写入mssql时,它返回错误: dbapierrror:(pyod

自2019-03-04发布SQLAlchemy 1.3.0以来,

sqlalchemy现在支持
engine=create\u engine(sqlalchemy\u url,fast\u executemany=True)
对于
mssql+pyodbc
方言。即

不再需要定义函数和使用

@event.listens_for(engine, 'before_cursor_execute'). 
但是,当我试图将一个简单的测试数据帧写入mssql时,它返回错误:

dbapierrror:(pyodbc.Error)('HY010','[HY010][Microsoft][ODBC Driver 17 for SQL Server]函数序列错误(0)(SQLParamData)' [SQL:插入fast_executemany_测试([Date]、[A]、[B]、[C]、[D])值(?、、、?、?、?)][parameters:((datetime.datetime(2018,1,3,0,0)、2.0,1.0,1.0,'Joe')、(datetime.datetime(2018,1,4,0,0)、2.0,2.0,3.0,1.0,'0,'Pete')、(datetime.1,0、0.0,'0')、(datetime.0、0、0、0、0、0.0、0、0、0、0、0、1、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0、0)] (此错误的背景信息位于:)

我已经阅读了文档,但找不到我做错了什么

import sqlalchemy
import pandas as pd

DataFrame contains datetime, float, float, float, string. 

test_columns = ['Date', 'A', 'B', 'C', 'D']
test_data = [
    [datetime(2018, 1, 3), 2.0, 1.0, 1.0, 'Joe'],
    [datetime(2018, 1, 4), 2.0, 1.0, 2.0, 'Joe'],
    [datetime(2018, 1, 5), 2.0, 3.0, 1.0, 'Pete'],
    [datetime(2018, 1, 6), 2.0, 1.0, 5.0, 'Mary'],
]

I am establishing connection as:

sqlUrl='mssql+pyodbc://ID:PASSWORD' + 'SERVER_ADDRESS' + '/' + 'DBName' + '?driver=ODBC+Driver+17+for+SQL+Server'

sqlcon = sqlalchemy.create_engine(sqlUrl,fast_executemany=True)

if sqlcon:
    test_data.to_sql('FastTable_test', sqlcon, if_exists='replace',index=False)
    print('Successfully written!')

It creates the table but due to error does not write any data into it.

看起来像是pyodbc/sqla问题。PyODBC问题跟踪器与fast ExecuteMy有关,存在多个有关此错误的问题。看起来像PyODBC/sqla问题。PyODBC问题跟踪器与fast ExecuteMy有关,存在多个有关此错误的问题。