2017-12-27 15 views
0

新しいサーバーでPythonスクリプトを設定しようとしていますが、スクリプトを使用してDBに接続しようとしているときは、次のエラーが表示されます。oracle10 windows cx_Oracle Oracle環境ハンドルを取得することができません

dbHost = 'xxxxxx' 
dbPort = xxxx 
dbServiceName = 'xxx.xxxx.com' 
dbUser = 'xxxx' 
dbPass = 'xxxx' 
dnsTns = cx_Oracle.makedsn(dbHost, dbPort, dbServiceName).replace('SID','SERVICE_NAME') 
dbCon = cx_Oracle.connect(dbUser, dbPass, dnsTns) 

>>> dbCon = cx_Oracle.connect(dbUser, dbPass, dnsTns) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
cx_Oracle.InterfaceError: Unable to acquire Oracle environment handle 

私は同じTNSユーザーを使用して、コマンドラインからSQLPLUSを使用し、問題なく通過したが

私のパス変数は以下のように設定するOracleクライアントのフォルダがあり、それはスクリプト上で動作するように取得することはできません以前のサーバー(C:\ oracle \ bin)。

TNS_ADMIN変数に設定され、 "C:\オラクル\ NETWORKの\のADMIN" はCにORACLE_HOMEを使用してみました:\オラクルのあまりに

Oracleクライアントがサーバー Windows版64ビット cx_Oracleモジュール5.1.3と同じ10である pipを使ってインストールしました pythonが2.7

答えて

0

新しいバージョンのcx_Oracle(6.1)で新しいクライアント(11.2以上)を使用することをお勧めします。それはより良いエラーメッセージを提供するはずです。以前のバージョンのcx_Oracleは、Oracle環境の作成に失敗した場合には、あきらめました。新しいバージョンは根本的なエラーを取得しようとします。

+0

私の会社のサーバーはoracle10だから私はそのクライアントバージョンを使用していますので、私はできません。 – user2919673

+0

一時的にでも使用できれば(インスタントクライアントは単純な解凍であり、後で削除することができます)、問題の原因を突き止めることができます。それ以外の場合は、幸運!いくつかの構成上の問題により、接続が妨げられています。 –

関連する問題