2010-12-03 7 views
0

Utilisez Debian 5, Python 2.5 avec la version cx_Oracle unicode installée. J'essaie de se connecter en utilisant le script ci-dessous, mais son échecConnexion à la base de données Oracle à l'aide de cx_Oracle sur Python

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

Je pense parce que le cx_Oracle installé est une version unicode, sa me demandant de spécifier le unicode comme premier paramètre. mais, ce n'est pas prendre des ficelles et je ne sais pas ce que je pourrais fournir d'autre?

+1

essayez 'cx_Oracle.connect (u'hr/XXXXX @ local_xe ')'? – Sathya

+0

@Sathya: merci beaucoup. Cela a résolu mon problème, ça vous dérange bien de me dire pourquoi nous devons mettre un u avant la corde? Qu'est-ce que ça veut dire? –

+0

@Mo J. J'ai mis une réponse expliquant pourquoi c'est nécessaire. – Sathya

Répondre

-1

la solution était de placer les éléments suivants

cx_Oracle.connect(u'hr/[email protected]_xe') 

un u avant la chaîne. Je ne sais pas pourquoi, mais cela a résolu le problème pour moi.

4

Vous devriez essayer

cx_Oracle.connect(u'hr/[email protected]_xe') 

Puisque vous avez la version unicode de cx_Oracle, il attend la chaîne de connexion à un sring unicode (argument 1 must be unicode, not str)

Mettre un Infront u'' d'une chaîne, il se transforme en unicode, et par conséquent, il ne jette pas l'erreur.

Questions connexes