在Python上使用cx_Oracle连接到Oracle数据库

时间:2010-12-03 15:54:54

标签: python cx-oracle

使用Debian 5,安装了cx_Oracle unicode版本的Python 2.5。我尝试使用以下脚本进行连接,但其失败

>>> 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是unicode版本,所以要求我将unicode指定为第一个参数。但是,它没有采取任何措施,我不知道我能提供什么呢?

2 个答案:

答案 0 :(得分:4)

你应该试试

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

由于你有unicode版本的cx_Oracle,它希望连接字符串是unicode sring(argument 1 must be unicode, not str

u''置于字符串前面会将其转换为unicode,因此不会抛出错误。

答案 1 :(得分:-1)

解决方案是放置以下

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

字符串之前的u。不知道为什么,但这解决了我的问题。