Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python上的cx_Oracle连接到Oracle数据库_Python_Cx Oracle - Fatal编程技术网

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

使用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

我正在使用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 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。我已经给出了一个解释为什么需要它的答案。