gpt4 book ai didi

python - pyodbc unicode 查询失败

转载 作者:太空宇宙 更新时间:2023-11-03 17:57:09 25 4
gpt4 key购买 nike

我正在使用 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)')

最佳答案

看起来 vertica.ini 文件中定义的编码错误(或者 odbc.ini 中的 locale 设置错误)

vertica.ini

[Driver]
DriverManagerEncoding=UTF-16
...

odbc.ini

...
Locale = en_US@collation=binary
...

我押注于vertica.ini。我没有 MacOS 要检查,但根据文档,您需要定义 UTF-32。您可以发布您的 vertica.ini abd odbc.ini + 数据库区域设置吗?

HP Vertica

daniel=> show locale;
name | setting
--------+--------------------------------------
locale | en_US@collation=binary (LEN_KBINARY)
(1 row)
<小时/>

有关更多信息,请阅读 here .

关于python - pyodbc unicode 查询失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28325962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com