1

Temat: wykorzystanie lc_time w to_char

Chciałbym wykorzystać funkcje to_char w systemie, gdzie będą pracowali użytkownicy z kilku krajów, tak by każdy użytkownik widział datę sformatowana w swoim języku.
Ustawiłem więc dla użytkowników opcje lc_time (poniżej skrypt)

CREATE ROLE test_pl LOGIN VALID UNTIL 'infinity';
ALTER ROLE test_pl SET lc_time = 'Polish, Polish';
ALTER ROLE test_pl SET lc_messages = 'Polish, Polish';
CREATE ROLE test_de LOGIN VALID UNTIL 'infinity';
ALTER ROLE test_de SET lc_time = 'German, German';
ALTER ROLE test_de SET lc_messages = 'German, German';

Baza ma domyślnie ustawioną opcje lc_time jako Polish, a próba wykonania poniższego select-a kończy się wyświetleniem daty w języku domyślnym bazy.

set session authorization test_de;
select to_char(current_date,'yyyy-TMMONTH') as tlumaczenie;

Mogę co prawda wymusić prawidłowe działanie korzystając z set lc_time tak jak niżej pokazuje ale myślę że można skonfigurować serwer tak by robił to automatycznie w zależności od zalogowanego użytkownika

set session authorization test_de;
set lc_time='German, German';
select to_char(current_date,'yyyy-TMMONTH') as tlumaczenie;

Może ktoś wie jak skonfigurować serwer tak by nie trzeba było wykorzystywać komendy set lc_time przed każdym select-em i by zmieniał wartość lc_time w zależności od zalogowanego użytkownika.

2

Odp: wykorzystanie lc_time w to_char

Dla potomnych smile
Zawsze dokładnie czytaj dokumentacje. Okazuje się, że opcje te nie działają jeśli używasz polecenie set session authorization, po zalogowaniu na użytkownika test_de wszystko działa.