先日Windowsローカル環境でOracleデータベースに入門したばかりの赤ん坊です。
Oracleデータベースにリモート接続するには「クライアントマシンにOracle Clientをインストールする必要がある」という説明が多かったので、Oracle Clientをインストールしなくても済む方法が無いか簡単に調べた。
まとめ
OracleデータベースにOracle Clientなしで接続する方法3つ
- JavaアプリケーションからはODBC Thinを使う
- .NETアプリケーションではDLL形式のODP.NETを使う
- A5:SQL Mk-2 では直接接続方式を使う
結構普通にあった。
Oracle Clientをインストールすると
クライアントマシン向けのOracle Clientというソフトウェアをインストール・設定することで、別マシンのOracleデータベースにリモート接続できるようになる。
Oracle Clientをインストールすると、サーバー側用ソフトウェアをインストールした時と同じように、ORACLE_HOMEやtnsnames.oraの置き場所も作られてしまう。
ちょっと気軽に接続したいぜぐらいのノリだったらいちいち仰々しくない?などと思ったのが今回調べるに至ったきっかけ。
JavaアプリケーションからOracleデータベースにリモート接続する方法
以下2種類のうちどちらかのドライバを使う。
推奨は JDBC Thin とのこと。
-
JDBC Thin ドライバ
Oracle Clientにも含まれているが、JARファイルにも含まれているので、Oracle Clientは必須ではない。 -
JDBC OCI ドライバ
Oracle Client に含まれており、Oracle Clientインストールが必要。
.NET アプリケーションからOracleデータベースにリモート接続する方法
ODP.NET ドライバ が必要。
入手方法
- Oracle Client (バージョンによっては Oracle Database Access Component)
- Nuget
NugetからならODP.NETをパッケージという形で入手できるので、アプリケーションにDLLとして挿せばよく、Oracle Clientをインストールせずに済むようだ。
接続先情報については、tnsnames.oraファイルが無い代わりに自前で接続記述子を指定するようだ。
A5:SQL Mk-2 からOracleデータベースにリモート接続する方法
思い返せば、私は仕事で開発マシンのA5からDBサーバーのOracleに難なく接続できていたが、そのマシンにはOracle Clientはインストールされていなかったので気になって調べた。
A5からOracleに接続するとき、以下の2つの方式から選択できるようになっている。
- OCI経由 Oracle Clientを使って接続する。
- 直接接続 Oracle Clientを使わずに接続する。
直接接続方式ならOracle Clientインストールが不要。
直接接続方式では、A5の開発言語Delphi等で使えるUniDACという有償コンポーネントを使っているそうだ。A5開発者の方によれば、おそらくUniDACはOracle Clientと同等の機能を有しているとのこと。