Установите lc_monetary для PostgreSQL - PullRequest
0 голосов
/ 06 января 2019

Как установить lc_monetary для отображения типа данных money ( документы ) в евро?

Я пытался:

  • изменить postgresql.conf и установить lc_monetary="de_DE.UTF-8@euro. PG не запустится с этим изменением (в настоящее время установлено en_US.UTF-8)
  • сделать то же самое через pgAdmin и psql (используя set), и я получаю ERROR: invalid value for parameter "lc_monetary"

Мое текущее сопоставление en_US.UTF-8.

1 Ответ

0 голосов
/ 06 января 2019

Локали зависят от операционной системы. Проверьте, какие локали доступны

select * 
from pg_collation
where collname ~ any(array['DE', 'FR', 'GR', 'IE'])

  collname  | collnamespace | collowner | collencoding | collcollate | collctype  
------------+---------------+-----------+--------------+-------------+------------
 en_IE      |            11 |        10 |            6 | en_IE.utf8  | en_IE.utf8
 en_IE.utf8 |            11 |        10 |            6 | en_IE.utf8  | en_IE.utf8
(2 rows)

Ну, моя Ubuntu не говорит по-немецки, по-французски и не по-гречески, но ирландцы говорят по-английски и платят в евро.

set lc_monetary to "en_IE.utf8";
select 10::money;

 money  
--------
 €10.00
(1 row)

В Windows вполне вероятно, , что компьютер говорит по-немецки:

set lc_monetary to "de-DE";

К сожалению, pg_collation не показывает это.

...