2017-11-20 11 views
-4

私は、Pythonを使用してリモートoracle databaseに接続し、パンダのデータフレームを作成してみたいと思います:私は高いsieraのMacOSを使用していのpython cx_Oracle接続するリモートエラー

con = ora.connect('user/[email protected]_ip/XE') 
query = "select * from my_table" 

df = pd.read_sql(query, con) 

を、これが私のホストファイルがどのように見えるかです:

## 
# Host Database 
# 
# localhost is used to configure the loopback interface 
# when the system is booting. Do not change this entry. 
## 
127.0.0.1  localhost local 
127.0.0.1 localhost localhost.localdomain local lynx 
255.255.255.255 broadcasthost 
::1    localhost 
127.0.0.1  activate.adobe.com 
127.0.0.1  practivate.adobe.com 
127.0.0.1  hlrcv.stage.adobe.com 
127.0.0.1  na1r.services.adobe.com 
127.0.0.1 quickplayer.tvgo.hu 
80.211.194.173 anton 
10.2.94.217 lynx 

cx_Oracle.DatabaseError: ORA-21561: OID generation failedエラーが発生しました。

私がUbuntuを試してみたら、うまくいきました。

私のデータベースのバージョン:

Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production 
PL/SQL Release 11.2.0.2.0 - Production 
CORE  11.2.0.2.0   Production 
TNS for Linux: Version 11.2.0.2.0 - Production 
NLSRTL Version 11.2.0.2.0 - Production 

私は何を試してみてください?コメントの

+0

私の質問は、データベースのverisonで更新されました。これは、macOSが動作しているのと同じマシンにはありません。データベースはUbuntuマシンにあります。 – solarenqu

+0

これは、私のホストファイルが次のようになります。127.0.0.1 localhost localhost.localdomain 10.2.94.217 lynx私のoracleサーバのIPが10.2.94.217で、ホスト名がoracleサーバを実行しているubuntuマシンがlynxであるためです。まだ動かない。 : – solarenqu

+0

あなたのMac端末に 'hostname'と入力するとどうなるのですか? – JSapkota

答えて

2

概要:

実行ホスト名は、お使いのOSがあなたの名前があると考えてものを手に入れます。

127.0.0.1 QGMAC.localドン・バールソンのサイトから

http://www.dba-oracle.com/t_ora_21561_oid_generation_failed.htm

をこの場合、ホスト名には

は、hostsファイルに次の行を追加します。

QGMAC.local

返さ

"問題はクライアントマシンのhostsファイルにある可能性が高いです。クライアントマシンが完全にqualifiであることを確認してくださいクライアントマシンのhostsファイルの名前と短い名前を指定してください。 "