2016-09-29 12 views
0

Я подключаюсь из Python 2.7 к базе данных Oracle. Когда я использую:Python 2.7 соединение с Oracle: потеря (польские) символы

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

У меня почти правильные значения для column1, потому что все польские символы («ęóąśłżćń») преобразуются в ASCII один («eoaslzcn»). Используя другой инструмент, такой как SQLDeveloper, и используя тот же оператор select, я получаю правильное значение.

+0

Где пропали символы? oracle-> питон? или python-> среда вывода? –

+0

Символы теряются в Oracle -> Python - ниже это решение для этого :) – KrzyszofS

ответ

0

Попробуйте установить переменную окружения NLS_LANG в строку языка базы данных, что-то вроде

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

@Mark Харрисон - большое спасибо! Оно работает! Существует точная инструкция, что я сделал:

Я проверил в Oracle, что язык:

SELECT USERENV ('language') FROM DUAL 

Ответ был:

POLISH_POLAND.UTF8 

Тогда я изменил значение NLS_LA в Python:

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

Использование

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

и "> file.txt" в командной строке Я получил (правильный) файл в utf8.