Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / поиск и upper на киррилице / 9 сообщений из 9, страница 1 из 1
02.10.2007, 18:41
    #34842017
Dicor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск и upper на киррилице
Доброе время суток.
Начал изучать PostgreSQL. Обнаружил что функция upper() не выполняется на записях со словами на русском.
Как решить эту проблему, какую для этого надо поставить кодировку базы? (pg_client_encode возращает 'SQL ASCII').
Использую postgresql 8.2.4.
...
Рейтинг: 0 / 0
02.10.2007, 19:36
    #34842126
nedba
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск и upper на киррилице
Код: plaintext
1.
CREATE DATABASE db_1
ENCODING = 'UTF8'
...
Рейтинг: 0 / 0
03.10.2007, 05:07
    #34842509
Dicor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск и upper на киррилице
nedba
Код: plaintext
1.
CREATE DATABASE db_1
ENCODING = 'UTF8'


Сделал новую базу с кодировкой UTF8,win1251 - upper не срабатывает. Делал upper на поля типа text, var char.

Как исправить эту проблему?
...
Рейтинг: 0 / 0
03.10.2007, 08:44
    #34842592
_Андрей_М
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск и upper на киррилице
Операционка какая?
Впрочем, в любом случае - документация, глава 21 "Localization"
Страница чегой-то не доступна :( может, попозже появится
...
Рейтинг: 0 / 0
03.10.2007, 10:11
    #34842790
Dicor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск и upper на киррилице
_Андрей_МОперационка какая?
Впрочем, в любом случае - документация, глава 21 "Localization"
Страница чегой-то не доступна :( может, попозже появится
winXP SP2.
...
Рейтинг: 0 / 0
03.10.2007, 12:16
    #34843305
nedba
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск и upper на киррилице
DicorСделал новую базу с кодировкой UTF8,win1251 - upper не срабатывает. Делал upper на поля типа text, var char.
Как исправить эту проблему?

Cпецально проверил для varchar и text команды like на upper, order by и другие раюотают как и положено.

Предлагаю показать что вы делаете. Может тогда станет яснее.
Скрипт базы.
Скрипт таблицы.
Скрипт инсерта.
Скрипт селекта.
...
Рейтинг: 0 / 0
03.10.2007, 12:37
    #34843407
Dicor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск и upper на киррилице
Разобрался с проблемой но не лучшим способом При установке ставил locale = C, а надо было выставить russian, russia.
Кодировку можно ставить win1251, utf8. Тогда upper, lower, like, sort отрабатывают правильно.

И еще момент show all возращает значения
Если при установке указал locale = С:
в этом случае upper/lower не работают.
авторlc_ctype=С
lc_collate=C

Если при установке указал locale = Russian,russia:
в этом случае upper/lower работают.
авторlc_ctype=Russian_Russia.1251
lc_collate=Russian_Russia.1251
Не разобрался как поменять через initdb, пытался так:
Код: plaintext
initdb --lc-ctype=win1251
не получается пишет что нет доступа. Как правильно?
...
Рейтинг: 0 / 0
03.10.2007, 13:19
    #34843590
nedba
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск и upper на киррилице
Код: plaintext
initdb --encoding=encoding

затем в файле postgresql.conf смотрим

Код: plaintext
1.
2.
3.
4.
5.
timezone = 
client_encoding = 
lc_messages = 
lc_monetary = 
lc_numeric = 
lc_time = 
...
Рейтинг: 0 / 0
03.10.2007, 13:39
    #34843680
_Андрей_М
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск и upper на киррилице
Кусок postgresql.conf
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
# - Locale and Formatting -

datestyle = 'iso, dmy'
#timezone = unknown			# actually, defaults to TZ 
					# environment setting
#timezone_abbreviations = 'Default'     # select the set of available timezone
					# abbreviations. Currently, there are
					#   Default
					#   Australia
					#   India
					# However you can also create your own
					# file in share/timezonesets/.
#extra_float_digits =  0 			# min - 15 , max  2 
#client_encoding = sql_ascii		# actually, defaults to database
					# encoding

# These settings are initialized by initdb -- they might be changed
lc_messages = 'Russian_Russia.1251'			# locale for system error message 
					# strings
lc_monetary = 'Russian_Russia.1251'			# locale for monetary formatting
lc_numeric = 'Russian_Russia.1251'			# locale for number formatting
lc_time = 'Russian_Russia.1251'				# locale for time formatting
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / поиск и upper на киррилице / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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