まず、少し背景がありますが、私はjdk 1.6を使用しています。 Oracle 8i DBに2列の表があり、非常にシンプルなコードをワードマップに格納しています。奇妙な文字はありません。どちらの列もvarcharです。私は、次のコマンドを実行したときに、私のデスクトップマシンからサーブレットからOracle 8iのテーブルにアクセスする際の異常な動作
、:
OracleDataSource ods = new OracleDataSource();
ods.setDriverType("thin");
ods.setServerName("DBserver.db");
ods.setDatabaseName("DB");
ods.setPortNumber(1527);
ods.setUser("user");
ods.setPassword("password");
Connection connection = ods.getConnection();
Statement stmt = connection.createStatement();
ResultSet res = stmt.executeQuery(SQL);
CachedRowSet crs = new CachedRowSetImpl();
crs.populate(res);
while (crs.next()) {
System.out.println("ID: " + crs.getString(1) +
", Name: " + crs.getString(2));
}
すべてが正常に動作し、私は私が期待する結果を得る(のgetString用の両方の戻り値は、(1)とのgetString(2)正確にしています彼らはもつとも
)テーブルに格納されているとおり、私はTomcatサーバ上に座って、サーブレットでまったく同じコードを実行すると
(私はテーブルにアクセスするために、簡単なアプレットサーブレット・モデルを使用していますし、アプレットへの応答を返します)、crs.getString(int)は0x53、0x54、0x4Eなどの文字列を返します。
私はこれが何を意味しているのかよく分かりません。ご協力いただき、ありがとうございます。問題のトラブルシューティングを開始する場所が不思議です。
Oracle 8iは10歳ですが、完璧なサポートは期待できません。 – tuinstoel