Вопрос

У меня есть таблица в таком базе данных Oracle

ID   | LABEL
------------
 1   |  label alpha 1
 2   |  label alpha 2
 3   |  label alpha a

Когда я делаю выбор в таком приложении, как белка, как это:

select * FROM MA_TABLE order by LABEL asc

Я получил :

ID   | LABEL
------------
 1   |  label alpha 1
 2   |  label alpha 2
 3   |  label alpha a

Что в порядке!

Но когда я выполняю один и тот же запрос, используя mybatis:

<select id="selectMaTable" resultMap="resultMap" >
  Select * FROM MA_TABLE order by LABEL asc
</select>

Я получил :

ID   | LABEL
------------
 3   |  label alpha a
 1   |  label alpha 1
 2   |  label alpha 2

Алфавитные символы представлены перед числовыми персонажами ... почему ??

заранее спасибо,

Антуан

PS: я использую org.mybatis: mybatis: jar: 3.0.5 и com.oracle:ojdbc6:jar:11.2.0.2.0 Для доступа к базе данных

Редактировать :Это связано и немного помогите мне немного

Благодаря замечанию Soulcheck, я обнаружил, что если я изменю предложение «Заказ по заказу» nlssort (atl_sit.atl_sit_lib, 'nls_sort = binary') Это работает ...

Кто -нибудь знает, как заставить nls_sort = двоичный с помощью mybatis? (Он уже установлен в моей базе данных Oracle в NLS_DATABASE_PARAMETERS)

Это было полезно?

Решение

Похоже, это может быть проблемой локали. Подключитесь со белкой и проверьте, что NLS_LANG Он устанавливается, затем проверьте, какой локаль использует ваше приложение Java. Другой параметр, который может повлиять на сортировку, - это NLS_SORT.

Вы можете проверить стоимость обоих, выпустив:

select parameter,value from NLS_DATABASE_PARAMETERS where parameter in('NLS_LANGUAGE','NLS_SORT');

Затем вы можете проверить его в Java, используя:

Locale.getDefault()

и установите его, используя:

Locale.setDefault(Locale)

или добавив параметры JVM:

-Duser.country=en -Duser.language=en

редактировать

Весенние форумы Рекомендую создать триггер для входа в систему, который устанавливает переменную среды NLS_SORT на вход в систему пользователя. Это не Mybatis, но JDBC в любом случае, так что должен работать в вашем случае.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top