0

最初に少し背景を説明します。jdk 1.6 を使用しています。非常に単純なコードから単語へのマップを保持する Oracle 8i DB に 2 列のテーブルがあります。変なキャラはいらない。どちらの列も varchar です。

私のデスクトップマシンから、次を実行すると:

        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 など。

これが何を意味するのかわからないので、助けていただければ幸いです。問題のトラブルシューティングをどこから始めればよいか悩んでいます。

4

1 に答える 1

1

Oracle 8i は非常に古いです。1999 年か 2000 年だと思います。あなたの jdk と Tomcat と Oracle と JDBC の組み合わせは認定/サポートされていますか?

于 2009-04-10T08:44:04.427 に答える