Oracle10gのType2ドライバを使ってEclipseからDBにアクセスする方法

Type4でしか動かしたことなかったら苦戦しました...ここにメモしておきます。
EclipseWindowsで実行します。

JDBCドライバ

Type2とType4で異なるjarというわけではなく同じjarでいけます。使ったのはojdbc14.jarです。

Oracleクライアント

Type2を使う場合はOracleクライアント(専用のdllなど)が必要です。ただ、データベースをインストールしたPCにはOracleクライアントがすでに存在するので別途のインストールは不要です。

環境変数

ORACLE_HOMEを適切に設定しておきます。

接続文字列

Type4のときとは異なります。
8iだとまた若干違うらしいですが、10gでは次の文字列でいけます。

jdbc:oracle:oci:@xxx

xxxはtnsnames.oraファイルに記述されているキー名に合わせます。

tnsnames.ora

抜粋です。

xxx =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = yyy)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = zzz)
    )
  )

xxx、yyy、zzzは環境ごとに異なる値です。
たぶん、自分で記述しなくてもデータベース作成時に勝手にできるんじゃないんでしょうか。

Eclipse

実行時にType2のドライバが使用するdllを読み込めるようにします。

  1. メニューから「Run」-「Run...」を選択。
  2. 「Run」ダイアログが開く。
  3. Environmentタブを選択。
  4. 「New」ボタンを押下。
  5. 「Name」にPATH、「Value」にORACLE_HOME\binを設定。

4で「Select」ボタンを押してすでに定義されている環境変数のPATHを選ぶこともできましたが、これを選択してもうまくいきませんでした。そのままでは余分なパスが含まれているからでしょうね。必要最低限のパス(ORACLE_HOME\bin)を設定するのがいいみたいです。

この設定で動かすと無事Type2ドライバでOracleにアクセスできます。
めでたしめでたし。