14

Python 2.4 と 2.6 を別々に実行している 2 つの RHEL サーバーがあります。アクセスする必要がある他のサーバーに Oracle データベースがあります。

RHEL サーバーに cx_oracle をインストールしようとしましたが、最初に Oracle クライアントをインストールする必要があることがわかりました。

問題は、両方の RHEL サーバーに Oracle のクライアントをインストールする権限がないことです。同じサーバーで、Perl プログラムは次を使用して Oracle db に接続できます。

DBI->connect("dbi:Oracle:host=myhost.prod.com;sid=prddb",'username','password')

cx_oracle と Oracle クライアントをインストールせずに、Python で同じことを実行できますか? または、同じことを行うために自分でモジュールを作成する方法について何か提案はありますか?

前もって感謝します!

4

3 に答える 3

6

https://forum.omz-software.com/topic/184/oracle-databaseからの抜粋:

Oracle 用の純粋な Python クライアントはありません。SQLalchemy のような優れたサードパーティ ツールセットでさえ、Oracle データベース サーバーとの実際の通信を行うために、依然として cx_Oracle に依存しています。

—また、Google の判断によると、答えはノーです。現在のところ、純粋な Python Oracle クライアントは存在しないようです。

于 2013-10-02T17:14:15.647 に答える
4

通常、必要なのはライブラリだけであり、必ずしも sudo 権限を必要としません。ソフトウェアが読み取り可能な場所にそれらを抽出し、それに応じて次の環境変数を設定します。

ORACLE_HOME=path/to/where/you/extracted/libs
TNS_ADMIN=path/to/tnsnames.ora

tnsnames をスキップして、接続でホスト、ポートなどを指定するだけで運が良かったのですが、cx_oracle に必要になる可能性は十分にあります...いつから使用したか覚えていません。

于 2013-10-02T17:20:55.353 に答える
0

cx_Oracleを使用したくない場合は、expect スクリプトを使用する必要があります。( python pexpect の場合)。ただし、すべての期待を処理するには、慎重に行う必要があります。

于 2016-05-08T08:15:09.397 に答える