Postgre和pyodbc的布尔是不兼容的?

时间:2016-12-26 12:23:51

标签: python postgresql pyodbc

我正在使用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 个答案:

答案 0 :(得分:2)

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