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.