Подключение к базе данных Oracle с помощью cx_Oracle на Python - PullRequest
0 голосов
/ 03 декабря 2010

Я использую Debian 5, Python 2.5 с установленной версией cx_Oracle unicode. Я пытаюсь подключиться, используя приведенный ниже скрипт, но он не работает

>>> connection = cx_Oracle.connect('hr/XXXXX@local_xe')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: argument 1 must be unicode, not str

Я думаю, потому что установленный cx_Oracle является версией в юникоде, поэтому в качестве первого параметра предлагается указать юникод. но это не принимает строки, и я не знаю, что я мог бы предоставить еще?

Ответы [ 2 ]

4 голосов
/ 04 декабря 2010

Вам следует попробовать

cx_Oracle.connect(u'hr/XXXXX@local_xe')

Поскольку у вас есть версия cx_Oracle в юникоде, она ожидает, что строка подключения будет строкой Unicode (argument 1 must be unicode, not str)

Установка u''Infront строки преобразует его в Unicode, и, следовательно, он не выдает ошибку.

0 голосов
/ 04 декабря 2010

решение было разместить следующее

cx_Oracle.connect(u'hr/XXXXX@local_xe')

перед строкой. Не знаю почему, но это решило проблему для меня.

...