使用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指定为第一个参数。但是,它没有采取任何措施,我不知道我能提供什么呢?
答案 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。不知道为什么,但这解决了我的问题。