Выход to_char(datetime)
по умолчанию заполнен пробелами:
SQL> select '"'||to_char(sysdate,'DAY')||'"' as actual_value from dual;
ACTUAL_VALUE
--------------------------------------
"SUNDAY "
Этого можно избежать с помощью модификатора fm
:
SQL> select '"'||to_char(sysdate,'fmDAY')||'"' as actual_value from dual;
ACTUAL_VALUE
--------------------------------------
"SUNDAY"
Однако это безопаснееуказать язык даты, если для сеанса не задано значение по умолчанию на английском языке (и более эффективно указать более короткий формат):
SQL> alter session set nls_date_language = German;
SQL> select '"'||to_char(sysdate,'fmDAY')||'"' as actual_value from dual;
ACTUAL_VALUE
------------------------------------------
"SONNTAG"
Короче ('DY' вместо 'DAY') ибезопаснее (обеспечивает 'SUN', а не 'SON', 'DIM' и т. д.):
SQL> select '"'||to_char(sysdate,'DY','nls_date_language = English')||'"' as actual_value from dual;
ACTUAL_VALUE
--------------
"SUN"