0

我从 Python 2.7 连接到 Oracle 数据库。当我使用:

cursor.execute("SELECT column1 FROM table").fetchall()]

我为 column1 获得了几乎正确的值,因为所有波兰语字符(“ęóąśłżćń”)都转换为 ascii 一个(“eoaslzcn”)。使用 SQLDeveloper 之类的另一个工具并使用相同的选择语句,我得到了正确的值。

4

2 回答 2

0

尝试将环境变量设置NLS_LANG为您的数据库语言字符串,例如

os.environ['NLS_LANG'] = 'POLISH_POLAND.EE8MSWIN1250'
于 2016-09-30T04:55:04.853 回答
0

@Mark Harrison - 非常感谢!有用!我做了一个确切的说明:

我在 Oracle 中检查了什么是语言:

SELECT USERENV ('language') FROM DUAL

回应是:

POLISH_POLAND.UTF8

然后我在 Python 中更改了 NLS_LA 值:

os.environ['NLS_LANG'] = 'POLISH_POLAND.UTF8'

使用

print "%s, %s" % (name, surname)

和 "> file.txt" 在命令行中我在 utf8 中获得了一个(正确的)文件。

于 2016-10-05T11:09:40.627 回答