【发布时间】:2015-02-04 16:06:19
【问题描述】:
我正在使用 pyodbc 连接到 Vertica。 我已经安装了 Vertica 驱动程序、unixodbc 和 pyodbc。
现在我遇到了执行 unicode 查询的问题。
con = pyodbc.connect('Driver={driver};Servername={server};Port={port};Database={db};UserName={user};password={password}'.format(...))
cur = con.cursor()
cur.execute('SELECT * FROM table') # It works
cur.execute(u'SELECT * FROM table') # It fails
错误是:
ProgrammingError: ('42601', '[42601] ERROR 4856: Syntax error at or near " (4856) (SQLExecDirectW)')
【问题讨论】:
-
看起来这个驱动需要一个编码字符串而不是一个 unicode 字符串。
-
你试过
.encode('utf-8')吗? -
是的@woot,我试过了,但没用
-
@user1263702 抱歉,我无法为您解答...我自己也遇到过各种有关 unixodbc 的 unicode 问题。我切换到由 Uber 编写的 vertica_python。 (pypi.python.org/pypi/vertica-python/0.3.0) 你会想阅读有关如何进行绑定参数的文档(如果我没记错的话,需要编译 postgresql 库)。
标签: python unicode pyodbc vertica