[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends:00175] OCI ドライバでの DB アクセスについて



初めまして。nakataと申します。
表題の件について質問がございます。

Weblogic8.1 + JDK1.4.1_03 を使用して開発を行っています。
Weblogic のJDBC接続プールを OCIドライバを使って設定し、
データソースを用いて、oracle のデータベースに接続しているのですが、
データベースに入っているデータが一桁の場合、値を正常に取得できない
という現象が発生しました。

今のところ確認しているのは、VARCHAR2、NUMBER型について発生しています。
(他にもあるかもしれませんが)

例として中身が "1" のVARCHAR2のデータを取得すると、"" で取得してしまいます。
("10" の場合は取得できる)

接続プールのURL、ドライバの設定は以下の通りです。
データベースタイプ  :Oracle
データベースドライバ :WebLogic's Oracle Driver(Type 2) Versions:8.1.7.9.0.1.9.2.0
URL   : jdbc:weblogic:oracle
ドライバ : weblogic.jdbc.oci.Driver

データ取得のコードは以下の通りです。(一部コード編集)
try {
  InitialContext initialContext = new InitialContext();

  DataSource ds  = (DataSource)initialContext.lookup("JNDIName");
  Connection con = ds.getConnection();
  Statement stmt = con.createStatement();

  ResultSet rs = stmt.executeQuery("SELECT * FROM A_TABLE");
  rs.next();

  System.out.println("1:" + rs.getString(1));  // VARCHAR2
  System.out.println("2:" + rs.getString(2));  // VARCHAR2
  System.out.println("3:" + rs.getString(3));  // NUMBER
  System.out.println("4:" + rs.getString(4));  // CHAR

  rs.close();
  stmt.close();
  con.close();
} catch(Exception ex) {
  throw ex;
}

A_TABLEにそれぞれ、"1", "10",  5, "100" が入っていると仮定し、実行結果は
1:
2:10
3:
4:100

となります。

"oracle.jdbc.driver.OracleDriver" だと、正常に取得できるのですが、(URLはそれ用に変更)
"weblogic.jdbc.oci.Driver" では取得できないというのは、
OCIドライバが特殊で、他に何らかの設定等が必要なのでしょうか?

どなたか正常に取得する方法をご存知の方、いらっしゃいましたら、よろしくお願いいたします。

開発環境
--------------------
Weblogic8.1
JDK1.4.1_03
JBuilder9
oracle9
Windows2000 SP4
--------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Free E-mail for life. http://www.jmail.co.jp
Multi-lingual web hosting. http://www.servance.jp
Get your own domain. http://www.domaintorou.com