powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / NCHAR и UPPER/LOWER
15 сообщений из 15, страница 1 из 1
NCHAR и UPPER/LOWER
    #34486138
Фотография Евгений Фадеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно я похож на идиота (а может им и являюсь :)), но у меня не работают UPPER/LOWER для поля типа NCHAR.
То есть SELECT UPPER(<NCHAR_Field>) FROM <Table> возвращает мне строку в первозданном виде. Если текст в ней - русский. Для английского - все как и ожидаем. Где, как и чем мне выпрямить руки?
...
Рейтинг: 0 / 0
NCHAR и UPPER/LOWER
    #34486182
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений ФадеевВозможно я похож на идиота (а может им и являюсь :)), но у меня не работают UPPER/LOWER для поля типа NCHAR.
То есть SELECT UPPER(<NCHAR_Field>) FROM <Table> возвращает мне строку в первозданном виде. Если текст в ней - русский. Для английского - все как и ожидаем. Где, как и чем мне выпрямить руки?локали какие?
...
Рейтинг: 0 / 0
NCHAR и UPPER/LOWER
    #34486936
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такие функции работают только в рамках локали, т.ч. Денис прав - проверьте свои локали, как БД, так и клиента.
Посмотреть, какая буква в какую (точнее, какой код в какой) будет преобразовываться (и какие вообще буквы считать маленькими, а какие большими :) можно в описании соответствующей локали, например для Ru_ru и кодировки 1251 см. файл %Informixdir%\gls\lc11\ru_ru\04e3.lc а в нем разделы upper, lower, toupper, tolower...
...
Рейтинг: 0 / 0
NCHAR и UPPER/LOWER
    #34487679
Фотография Евгений Фадеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Денис Евгений ФадеевВозможно я похож на идиота (а может им и являюсь :)), но у меня не работают UPPER/LOWER для поля типа NCHAR.
То есть SELECT UPPER(<NCHAR_Field>) FROM <Table> возвращает мне строку в первозданном виде. Если текст в ней - русский. Для английского - все как и ожидаем. Где, как и чем мне выпрямить руки?локали какие?Как и где это посмотреть? *как неприятно чувствовать себя ламером*
...
Рейтинг: 0 / 0
NCHAR и UPPER/LOWER
    #34488463
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть локейл базы DB_LOCALE, есть клиента CLIENT_LOCALE (если они разные, то информикс будет пытаться перекодировать, например koi8->1251).

DB_LOCALE -- задается при создании бд и эта информация хранится в sysmaster
echo "select * from sysdbslocale where dbs_dbsname='a'"|dbaccess sysmaster

CLIENT_LOCALE -- задается соотвественно на клиенте в setnet32 (реестре), в odbc, в jdbc, а можно при установлении соеднинения задать. Все зависит от того как в программе у вас сделано.

Обычно (для виндоус) задают такие (в setnet32):
CLIENT_LOCALE=ru_ru.1251
DB_LOCALE=ru_ru.1251


--
конечно в третьем тысячилетии все это слегка дико звучит, особенно если echo $LANG ru_RU.UTF-8
...
Рейтинг: 0 / 0
NCHAR и UPPER/LOWER
    #34488482
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот например как у меня под линуксом это выглядит:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
informix@nag:~> echo $LANG
ru_RU.KOI8-R
informix@nag:~> echo $CLIENT_LOCALE
ru_RU.koi-8

informix@nag:~> echo "select upper('гыгы') from table(set{1})"|dbaccess a
(constant) 

ГЫГЫ


informix@nag:~> echo "select * from sysdbslocale where dbs_dbsname='a'"|dbaccess sysmaster
dbs_dbsname  a
dbs_collate  ru_RU.1251




CLIENT_LOCALE=ru_RU.utf8 не хочет работать :( клиент старый.
...
Рейтинг: 0 / 0
NCHAR и UPPER/LOWER
    #34488529
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений ФадеевКак и где это посмотреть? *как неприятно чувствовать себя ламером*Самое главное что ты можешь перебороть себя и задать вопрос.

PS: echo $LANG -- ланг тут не при чем, это переменная OS.
...
Рейтинг: 0 / 0
NCHAR и UPPER/LOWER
    #34489136
Фотография Евгений Фадеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Денисесть локейл базы DB_LOCALE, есть клиента CLIENT_LOCALE (если они разные, то информикс будет пытаться перекодировать, например koi8->1251).

DB_LOCALE -- задается при создании бд и эта информация хранится в sysmaster
echo "select * from sysdbslocale where dbs_dbsname='a'"|dbaccess sysmaster

CLIENT_LOCALE -- задается соотвественно на клиенте в setnet32 (реестре), в odbc, в jdbc, а можно при установлении соеднинения задать. Все зависит от того как в программе у вас сделано.

Обычно (для виндоус) задают такие (в setnet32):
CLIENT_LOCALE=ru_ru.1251
DB_LOCALE=ru_ru.1251


--
конечно в третьем тысячилетии все это слегка дико звучит, особенно если echo $LANG ru_RU.UTF-8О-оу! Что я вижу! en_US.819
- Доктор это конец?
...
Рейтинг: 0 / 0
NCHAR и UPPER/LOWER
    #34489152
Фотография Евгений Фадеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Денис Евгений ФадеевКак и где это посмотреть? *как неприятно чувствовать себя ламером*Самое главное что ты можешь перебороть себя и задать вопрос.С этим проблем нет (я уже давно не мальчик, так что не знать - не стыдно)

Журавлев ДенисPS: echo $LANG -- ланг тут не при чем, это переменная OS. Лажа. Пишет вот что:

echo $LANG
LANG: Undefined variable.

Но у нас Solaris, а не Linux
...
Рейтинг: 0 / 0
NCHAR и UPPER/LOWER
    #34489159
Фотография sysmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений Фадеев Журавлев Денис Евгений ФадеевКак и где это посмотреть? *как неприятно чувствовать себя ламером*Самое главное что ты можешь перебороть себя и задать вопрос.С этим проблем нет (я уже давно не мальчик, так что не знать - не стыдно)

Журавлев ДенисPS: echo $LANG -- ланг тут не при чем, это переменная OS. Лажа. Пишет вот что:

echo $LANG
LANG: Undefined variable.

Но у нас Solaris, а не Linux

set | grep LOCALE
...
Рейтинг: 0 / 0
NCHAR и UPPER/LOWER
    #34489162
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений ФадеевО-оу! Что я вижу! en_US.819Плохо, она вообще наверно семибитная.
Евгений Фадеев- Доктор это конец?Ну не конец, а размер у базы какой?
...
Рейтинг: 0 / 0
NCHAR и UPPER/LOWER
    #34489169
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений ФадеевЛажа. Пишет вот что:

echo $LANG
LANG: Undefined variable.

Но у нас Solaris, а не LinuxЗабудь, к делу отношения вообще не имеет.
...
Рейтинг: 0 / 0
NCHAR и UPPER/LOWER
    #34489244
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений ФадеевО-оу! Что я вижу! en_US.819
- Доктор это конец?
Извините, навеяло :)
---------
Пациент на операционном столе
- Доктор, я умру?
- А как же! Обязательно умрете, вопрос только когда?
---------
Не все так страшно, но изменить локаль существующей БД уже нельзя.
Для смены локали необходимо выгрузить БД утилитой dbexport, проверить корректность данных, особенно связанных с особенностями языка, и загрузить снова dbimport в уже локализованную БД.
Желательно при выгрузке уже сразу устанавливать даты нужного формата, десятичный разделитель.
Вам очень нужно почитать существующий FAQ по этим вопросам
http://www.sql.ru/faq/faq.aspx?id=549
...
Рейтинг: 0 / 0
NCHAR и UPPER/LOWER
    #34493722
Фотография Евгений Фадеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasilisНе все так страшно, но изменить локаль существующей БД уже нельзя.
Для смены локали необходимо выгрузить БД утилитой dbexport, проверить корректность данных, особенно связанных с особенностями языка, и загрузить снова dbimport в уже локализованную БД.
Желательно при выгрузке уже сразу устанавливать даты нужного формата, десятичный разделитель.
Вам очень нужно почитать существующий FAQ по этим вопросам
http://www.sql.ru/faq/faq.aspx?id=549 За ссылку спасибо, как-то я не глянул в FAQ сразу, а, похоже, придется плотно смотреть...
Выход нас не устроит (судя по всему). Возможностей таких нет :((
...
Рейтинг: 0 / 0
NCHAR и UPPER/LOWER
    #34493726
Фотография Евгений Фадеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Денис Евгений ФадеевО-оу! Что я вижу! en_US.819Плохо, она вообще наверно семибитная.
Евгений Фадеев- Доктор это конец?Ну не конец, а размер у базы какой?где-то 600-700 гиг
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / NCHAR и UPPER/LOWER
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]