使用Python上的cx_Oracle连接到Oracle数据库
我正在使用Debian5、Python2.5,并安装了cx\uOracleUnicode版本。我尝试使用下面的脚本连接,但失败了使用Python上的cx_Oracle连接到Oracle数据库,python,cx-oracle,Python,Cx Oracle,我正在使用Debian5、Python2.5,并安装了cx\uOracleUnicode版本。我尝试使用下面的脚本连接,但失败了 >>> connection = cx_Oracle.connect('hr/XXXXX@local_xe') Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: argument 1 must be unico
>>> 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
>>connection=cx\u Oracle.connect('hr/XXXXX@local_xe')
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:参数1必须是unicode,而不是str
我认为,因为安装的cx_Oracle是unicode版本,它要求我指定unicode作为第一个参数。但是,它不需要字符串,我不知道还能提供什么?解决方案是放置以下内容
cx_Oracle.connect(u'hr/XXXXX@local_xe')
线前有一个u。不知道为什么,但这解决了我的问题。解决方案是放置以下
cx_Oracle.connect(u'hr/XXXXX@local_xe')
线前有一个u。不知道为什么,但这解决了我的问题。你应该试试
cx_Oracle.connect(u'hr/XXXXX@local_xe')
由于您使用的是unicode版本的cx_Oracle,因此它希望连接字符串是unicode字符串(参数1必须是unicode,而不是str
)
将u'
放在字符串前面会将其转换为unicode,因此不会抛出错误。您应该尝试
cx_Oracle.connect(u'hr/XXXXX@local_xe')
由于您使用的是unicode版本的cx_Oracle,因此它希望连接字符串是unicode字符串(参数1必须是unicode,而不是str
)
将
u''
放在字符串前面会将其转换为unicode,因此不会抛出错误。尝试cx\u Oracle.connect(u'hr/XXXXX@local_xe)
?@Sathya:非常感谢。这就解决了我的问题,你介意告诉我为什么我们需要在字符串前加一个u吗?这是什么意思?@moj。我已经给出了一个解释为什么需要它的答案。试试cx\u Oracle.connect(u'hr/XXXXX@local_xe)
?@Sathya:非常感谢。这就解决了我的问题,你介意告诉我为什么我们需要在字符串前加一个u吗?这是什么意思?@Mo J。我已经给出了一个解释为什么需要它的答案。