Добрый день, народ!
У меня работает Postgres 8.1.4.
Настройки локали такие:
enterprise# SHOW LC_COLLATE;
lc_collate
-------------
ru_RU.UTF-8
(1 запись)
enterprise=# SHOW LC_CTYPE;
lc_ctype
-------------
ru_RU.UTF-8
(1 запись)
В одной из таблиц появились такие пользовательские записи, что запрос в программе:
SELECT * FROM vw_прайс WHERE UPPER(ИМЯ) LIKE '%тосол%'; ,
который раньше работал нормально, стал выдавать такую ошибку:
ERROR: неверная последовательность байт имя кодировки "UTF8": 0xe9f820
Решил устранить проблему, избавившись от функции UPPER():
SELECT * FROM vw_прайс WHERE ИМЯ ~* '.*тосол.*';
Стало работать быстрее, но не находит выражения, в которых слово "тосол" начинается с большой буквы. Попробовал по-другому:
enterprise=# SELECT 'Тосол (5л)' ~* '.*тосол.*';
?column?
----------
f
(1 запись)
enterprise=# SELECT 'Тосол (5л)' ~* '.*Тосол.*';
?column?
----------
t
(1 запись)
Т.е. получается, что в моем случае конструкция ~* с русскими буквами не работает. С английскими словами все работает нормально. Подскажите, пожалуйста, что тут можно сделать?

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум postgres + utf (2004)
- Форум В консоли MySQL не пишется кириллица, что делать? (2022)
- Форум Настройка локали в кубунту 13.10 64bit (2013)
- Форум Не открываются файлы, содержащие в имени русские буквы (2017)
- Форум Как выполнить несколько SQL-команд для PostgreSQL в Ansible? (2020)
- Форум man-pages-ru (2014)
- Форум mysql, utf8 и кириллица (2011)
- Форум проблемы толи с mysql толи с php (2005)
- Форум Postgres case insensitive username (2012)
- Форум Pascal case (он же upper camel case) в plain C (2014)