私はOracleデータベースへの管理者アクセス権を持っていますが、Oracle 11gデータベースをPostgresデータベースに接続することが可能かどうか、また可能であれば、どの手順に従う必要があるか疑問に思っていました。
いくつかのチュートリアルで、インストールが必要なODBCドライバーについて言及していますが、このドライバーをOracleサーバー自体にインストールする必要があるようです。
コミュニティWikiの回答、質問のコメントに残った回答を収集
ODBCドライバは、Oracleサーバー自体ではなく、Oracleサーバーに接続するコンピュータ上にある必要があります。さらに、このためにdblinkを使用することはできません。PostgresのDBLinkは、他のサーバーにのみ接続できます。 Postgresサーバー。ただし、外部データラッパーを使用できます。Postgresサーバーに必要なのはOracleクライアントライブラリ(ODBCドライバ)ではなく)だけであり、Oracleサーバーに何もインストールする必要はありません。
Oracleデータベースへの管理者アクセス権がない場合、またはPostgresで何も変更できない場合は、何もできません。 OracleのDBLinkは、他のOracleサーバーにのみ接続できます。 Oracleの「異種サービス」をインストールしてODBC(Postgres ODBCドライバーではなくOracleドライバーではない)を介して)で接続できるようにすることもできますが、その場合も同様です。 Oracleデータベースへの管理アクセス権があります。
Oracleの「Heterogeneous Services」をインストールしてから、ODBC(Postgres用のドライバー)をインストールしてください。Oracle用ではありません。
ODBCドライバーだけではありません。ODBC用のOracle Transparent Gatewayをインストールする必要があります。Oracleデータベースは、ゲートウェイ構成ファイルを使用してOracleリスナーにクライアント要求を送信します。要求をODBC DSNに解決します。完全な指示はかなり複雑ですが、私は 記事 で部分とそれらの接続の概要を示します。これにより、適切な概要とより詳細な指示を理解するためのフレームワーク。
OracleゲートウェイとPostgres ODBCドライバの両方が必要です。私が見つけた最良のリンクはこれです。
もちろん、そこに着いたら、バージョンに合わせて調整する必要があります。 ODBCドライバの場合、これはPostgresからのものです。
何をする必要があるかは、接続イニシアチブがどこで行われるかによって異なります。イニシアチブがOracle側から行われる場合、dg4odbcを使用して、それをodbcドライバーとPostgressデータベースの接続の詳細で構成できます。
dg4odbcは、通常のtnsエイリアスを使用して参照する特別な種類のリスナープロセスをセットアップします。このリスナープロセスは、同じマシン上にある必要がありますODBCドライバーですが、必ずしもデータベースサーバー上にある必要はありません。もちろん、datbaseサーバーにはリスナープロセスがありますが、おそらくライセンスが必要です-別のmacineにdg4odbcの専用リスナーを設定することはできません。
Oracleデータベースで、特別なリスナーを指すtnsエイリアスを使用するデータベースリンクを設定します。
はい、ODBCドライバーをOracleサーバーにインストールする必要があります。Oracle11gの場合、64ビットバージョンのODBCドライバーが必要です。 DG4ODBCは64ビットです。