[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