代码之家  ›  专栏  ›  技术社区  ›  swmfg

Postgre和pyodbc的布尔不兼容?

  •  0
  • swmfg  · 技术社区  · 7 年前

    我正在使用pyodbc 3.0.10和PostgreSQL 9.6,使用原生Postgre odbc驱动程序(Postgre Unicode(x64))。我已经创建了一个测试表

    create table test ( col boolean )
    

    我试图插入一个Python布尔值。我看不出做了什么参数替换,但pyodbc似乎不适用于所有Postgre数据类型?

    In [3]: cur = cxn.cursor()
    
    In [4]: cur.execute('insert into test values (?)', (True,))
    ---------------------------------------------------------------------------
    ProgrammingError                          Traceback (most recent call last)
    <ipython-input-4-5a0edc50457d> in <module>()
    ----> 1 cur.execute('insert into test values (?)', (True,))
    
    ProgrammingError: ('42804', '[42804] ERROR: column "col" is of type boolean but
    expression is of type "char";\nError while preparing parameters (1) (SQLExecDirectW)')
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   swmfg    7 年前

    正如Gord Thompson在上面指出的,您所要做的就是添加 ;BoolsAsChar=0 连接字符串