4

現在、perlモジュールDBI(1.613)およびDBD :: Oracle(1.26)を使用してOracleデータベースバージョン9i(9.2.0.8.0)にアクセスしています。プロジェクトの現在のスコープでは、バージョン8i(8.1.7.4.0)のOracleデータベースにアクセスする必要があります。DBD :: Oracleプロジェクトによると、この2番目のデータベースにはDBD::Oracleバージョン1.20または下。

DBDバージョン1.20を使用して両方のデータベースにアクセスできる可能性があることはわかっていますが、2つのバージョンのDBDモジュールをインストールして、各データベースで許容可能なバージョンを使用できるかどうか疑問に思いました(エラーが発生しにくい)。

4

3 に答える 3

6

サーバーのバージョンが、使用できる DBD::Oracle のバージョンに関係があるとは思いません。インストールするクライアント ライブラリのバージョンだけです。Oracle クライアント ライブラリのバージョン 9.2、10.1、および 10.2 は、Oracle サーバー 8.1.7.4 への接続をサポートしており、最新バージョンの DBD::Oracle は、9.2 以降のすべてのクライアント ライブラリとの互換性を維持しています。実際には何の問題もありません。ただし、バージョン 11 のクライアントをインストールすると、9.2.0 より前のバージョンのサーバーに接続できなくなります。

于 2010-12-15T14:08:02.670 に答える
4

DBI/DBD::Oracle の異なるバージョンを 2 つの異なる場所にインストールします。 INSTALL_BASE/を参照してください--install_basePERL5LIB を適切に設定して、それらに個別にアクセスします。

local::libは、この作業全体を自動化するのに役立ちます。

于 2010-12-15T12:16:00.953 に答える
3

同じプログラムの実行から 2 つのデータベース バージョンにアクセスする場合は、次のように実行できます。

  • local::libを使用して両方のバージョンをシステムにインストールします

  • DBD::Oracle の 1 つのバージョンをロードするように構成されたDBD::Proxyサーバーを実行します。@LIB

  • @LIBDBD::Oracle の他のバージョンをロードするように設定してスクリプトを実行します

  • スクリプトで、通常どおり DBD::Oracle を使用して 1 つのデータベースに接続し、プロキシを介して他のデータベースに接続します。

于 2010-12-16T18:25:20.330 に答える