2016-12-26 8 views
0

나는 원시 Postgre ODBC 드라이버 (Postgre Unicode (x64))를 사용하여 pyodbc 3.0.10과 PostgreSQL 9.6을 사용하고 있습니다. 테스트 테이블을 만들었습니다.Postgre 's와 pyodbc의 부울은 호환되지 않습니다?

create table test (col boolean) 

그리고 파이썬 부울을 삽입하려고했습니다. 어떤 매개 변수 대체가 수행되었는지는 볼 수 없지만 pyodbc가 모든 Postgre 데이터 유형에서 작동하는 것처럼 보이지 않습니까? 당신의 ODBC 연결 문자열의 끝에 BoolsAsChar = 0`, 고드 톰슨 위에서 지적한 바와 같이

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)') 
+0

시도를 ;BoolsAsChar=0를 추가합니다. 그게 나를 위해 문제를 해결 한 것 같습니다. –

+0

그 덕분에, 고마워! – swmfg

답변

1

은, 당신이 할 일은 연결 문자열에`추가