2016-09-29 57 views
0

我从Python 2.7连接到Oracle数据库。 当我使用:Python 2.7连接到Oracle:丢失(波兰语)字符

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

我有差不多合适的值列1,因为所有的波兰字符(“ęóąśłżćń”)转换为ASCII一个(“eoaslzcn”)。使用另一个工具如SQLDeveloper并使用相同的select语句,我可以获得适当的值。

+0

chars在哪里丢失? oracle->蟒蛇?或python->输出环境? –

+0

字符丢失在Oracle - > Python - 下面是解决方案:) – KrzyszofS

回答

0

尝试将环境变量设置NLS_LANG你的数据库语言的字符串,像

os.environ['NLS_LANG'] = 'POLISH_POLAND.EE8MSWIN1250' 
0

@马克哈里森 - 非常感谢你!有用!有一个确切的指示我做了什么:

我在甲骨文检查什么是语言:

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中获得了一个(正确的)文件。