Странное поведение при доступе к таблице Oracle 8i из сервлета - PullRequest
0 голосов
/ 10 апреля 2009

Сначала немного фона, я использую JDK 1.6. У меня есть таблица из 2 столбцов в БД Oracle 8i, которая содержит очень простую карту кода в слово. Там нет странных персонажей. Обе колонки 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 и т. Д.

Я не уверен, что это значит, и был бы благодарен за любую помощь. Мне интересно, с чего начать устранение проблемы.

1 Ответ

1 голос
/ 10 апреля 2009

Oracle 8i очень старый. Я верю в 1999 или 2000. Является ли ваша комбинация jdk и Tomcat и Oracle и JDBC сертифицированной / поддерживаемой?

...