Драйвер Oracle JDBC неявно выполняет следующую инструкцию после открытия нового соединения:
ALTER SESSION SET NLS_LANGUAGE='language' NLS_TERRITORY='territory'
В нашем случае у нас были проблемы с Oracle XE 11g и отображениями языка / территории по умолчанию, встроенными в драйвер JDBC: локаль 'ru' была сопоставлена с территорией 'CIS', которая поддерживается только Oracle EE, но Oracle XE имел 'RUSSIA' только территория.
Вот как мы это исправили:
-Doracle.jdbc.territoryMap="ru=RUSSIA;RU=RUSSIA"
Существует опция для NLS_LANGUAGE (у нас не было проблем с настройками по умолчанию):
-Doracle.jdbc.languageMap="ru=RUSSIAN;RU=RUSSIAN"
Исправлено: константа ru = РУССКИЙ взято из класса oracle.sql.converter.CharacterSetMetaData драйвера java jdbc.