2010-12-03 25 views
0

cx_OracleユニコードバージョンがインストールされたDebian 5、Python 2.5を使用しています。私は以下のスクリプトを使用して接続しようとするが、インストールcx_OracleはUnicodeバージョン、その最初のパラメータとしてUnicodeを指定するために私を求めているので、そのPythonでcx_Oracleを使用してOracleデータベースに接続

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

を失敗だと思います。しかし、その文字列を取っていないと私は私が他の供給することができるか分からないのですか?

+1

'cx_Oracle.connect(u'hr/XXXXX @ local_xe ')'を試してみませんか? – Sathya

+0

@サティヤ:ありがとう。それが私の問題を解決しました。私はなぜ文字列の前にuを置く必要があるのか​​教えてもらえますか?どういう意味ですか? –

+0

@モーJ.私はそれがなぜ必要であるか説明する答えを入れました。 – Sathya

答えて

-1

ソリューションは、文字列の前に、次の

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

Uを配置することでした。理由は分かりませんが、それが私の問題を解決しました。文字列のu''インフロントを置く

4

あなたはcx_OracleのUnicodeバージョンを持っているので、それは、接続文字列がUnicode sring(argument 1 must be unicode, not str)であることを期待

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

を試してみてください

はに変換しますユニコードであるため、エラーは発生しません。

関連する問題