【问题标题】:pandas with pyodbc - Nan error: [42S22] ERROR: Attribute 'QNAN' not found (31) (SQLExecDirectW)带有 pyodbc 的 pandas - Nan 错误:[42S22] 错误:找不到属性“QNAN”(31)(SQLExecDirectW)
【发布时间】:2023-03-15 08:57:01
【问题描述】:

使用 pandas DataFrame 中的数据运行 pyodbc execute() 时(x1 是数字类型)

sql = "select * from t where x1=?"
cursor.execute(sql, df[row,'x1'])

出现奇怪的错误:

('42S22', "[42S22] 错误:找不到属性 'QNAN' (31) (SQLExecDirectW)")

这样的错误信息怎么读?

【问题讨论】:

    标签: pandas odbc pyodbc


    【解决方案1】:

    我花了一些时间拼凑起来。 以下是读取错误的方法:

    1. pyodbc 需要 x1 数字但得到 Nan 并将其转换为字符串值 'QNAN'
    2. sql 变成了“select * from t where x1=QNAN”
    3. 通过ODBC桥SQLExecDirect函数解析sql请求返回错误状态42S22
    4. 42S22 - ODBC bridge error code 表示“无效的列名”

    注意,不要将 pyodbc 与 ODBC 桥接软件混淆。 ODBC 桥接器作为操作系统包的一部分安装。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-14
      • 1970-01-01
      • 2020-08-25
      • 1970-01-01
      • 2011-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多