首页 > 解决方案 > 在 SQLAlchemy 中隔离 ProgrammingError

问题描述

我正在尝试调试将数据插入 Microsoft SQL 数据库的问题。我不断收到的错误消息是:

ProgrammingError: ('42000', "[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]远程过程调用 (RPC) 协议的传入表格数据流 (TDS) 不正确。参数 16 ('' ): 指定的值不是浮点数据类型的有效实例。请检查源数据中的无效值。无效值的示例是小数位超出精度值的数值类型的数据。(8023) (SQLExecDirectW) ")

我(相信)我理解这个问题,但我无法确定哪些值正在触发它。我确保数据框中的所有列都与数据库的名称和顺序完全相同,但显然有些东西仍然不合适。我的问题是:当它说“参数 16”时,这个错误消息到底指向哪里。是不是一排?是柱子吗?是零索引吗?

不幸的是,我不能轻易提供数据或示例,但我至少可以提供我的 sql 插入代码以获得更多上下文:

with engine.begin() as conn:
    stmt = insert(reflection)
    values_list = df.to_dict(orient='records')
    conn.execute(stmt, values_list)

有小费吗?

标签: pythonsql-serverpandassqlalchemy

解决方案


推荐阅读