Как работает локальная настройка LC_NUMERIC в PostgreSQL?

Может ли кто-нибудь дать представление о поведении языковых и числовых типов в PostgreSQL? Мы работаем с итальянским языком. Это разделение запятой для десятичной части. Настройка в postgresql.conf

 # These settings are initialized by initdb, but they can be changed. lc_messages = 'it_IT.UTF-8' # locale for system error message # strings lc_monetary = 'it_IT.UTF-8' # locale for monetary formatting lc_numeric = 'it_IT.UTF-8' # locale for number formatting lc_time = 'it_IT.UTF-8' # locale for time formatting 

.. ничего не делает! Он ведет себя вполне подходящим образом с датами и так, НО, но числовой тип остается DOT, отделенным для десятичной части.

 root@server:~# uname -a Linux server 2.6.32-36-generic-pae #79-Ubuntu SMP Tue Nov 8 23:25:26 UTC 2011 i686 GNU/Linux root@server:~# dpkg -l | grep postgresql ii postgresql-8.4 8.4.9-0ubuntu0.10.04 object-relational SQL database, version 8.4 ii postgresql-client 8.4.9-0ubuntu0.10.04 front-end programs for PostgreSQL (supported) 

РЕДАКТИРОВАТЬ

Возникла проблема с реализацией локали в разных областях: db, серверный скрипт, os и клиентская сторона. Решил избежать форматирования локалей и использовать en_EN locale . Форматирование локали будет применяться только в момент вывода и так далее.

Solutions Collecting From Web of "Как работает локальная настройка LC_NUMERIC в PostgreSQL?"

Я цитирую руководство :

lc_numeric (строка)

Устанавливает язык, используемый для форматирования чисел, например, с помощью семейства функций to_char.

Обеспокоена этими функциями форматирования этого типа . Вы должны иметь возможность воспроизвести следующее демо:

 SHOW lc_numeric; 

de_AT.UTF-8

 SELECT to_number('13,4','999D99') 

13,4

 SELECT to_char(13.4,'FM999D99') 

13,4

 SET lc_numeric = 'C'; SELECT to_number('13,4','999D99') 

134

 SELECT to_char(13.4,'FM999D99') 

13,4

 RESET lc_numeric; 

Шаблоны шаблонов в руководстве .

Формат чисел в выражениях SQL не изменяется с настройками локали. Это было бы безумием.


С другой стороны: вы знаете, что вам необходимо (по крайней мере) перезагрузить сервер после изменения postgresql.conf .

 pg_ctl reload