|
|
su.dbms.sql- SU.DBMS.SQL ------------------------------------------------------------------ From : Max \(Serge V. Tarasov\) 2:5020/400 07 Mar 2001 14:42:10 To : All Subject : Re: Upper(KOI8-R) in PostgreSQL -------------------------------------------------------------------------------- "Vasiliy Nikiforov" <vasonik@garant.ru> wrote in message news:9829ac$82f$1@news.park.ru... > Посоветуйте можно ли как-то в PostgreSQL сделать upper над русскими > символами (KOI8-R) Hу а почему нет... Есть функции: upper(text) - convert text to upper case и lower(string) - convert string to lower case Чтобы это работало с русскими буквами, надо предпринять некоторые шаги: 1. Правильно настроить локаль для пользователя, от которого работает SQL-сервер (по-умолчанию postgres). Причем не обязательно это должна быть KOI8-R, может быть и ISO и любая другая (хотя в *nix, кроме KOI и ISO, я, пока других не встречал); 2. При создании базы, создать ее в необходимой кодировке: CREATE DATABASE db_name WITH ENCODING = 'koi8' Допустимы многие кодировки (см. README.mb), но для правильной работы нужно, чтобы указанная тут кодировка совпадала с локалью. После этого у тебя не только upper и lower будут работать с русскими нормально, но и будет правильная алфавитная сортировка при использовании ORDER BY. Еще интересная фишка, если перед запросом к таким образом созданной базе, сделать: SET CLIENT_ENCODING TO 'win'; (здесь также допустимы разные кодировки), результаты дальнейших запросов будут возвращаться в виндовой (или указанной) кодировке. PostgresSQL умеет перекодировать на лету. Удачи, Max. --- ifmail v.2.15dev5 * Origin: Rostelecom/Internet Centre (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms.sql/3495a5168467.html, оценка из 5, голосов 10
|