powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Разница в поведении to_char в SQL и PLSQL
3 сообщений из 3, страница 1 из 1
Разница в поведении to_char в SQL и PLSQL
    #39452059
Амаразм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наткнулся на разницу в поведении функции to_char, может кому то будет интересно.
Воспроизводится в 10,11,12 версиях.


Код: plsql
1.
2.
3.
4.
5.
6.
7.
SELECT to_char(SYSDATE,'dd-mm-yyyy','NLS_LANGUAGE=DUTCH') FROM DUAL ;

SQL> 

TO_CHAR(SYSDATE,'DD-MM-YYYY','
------------------------------
12-05-2017



Код: plsql
1.
2.
3.
4.
5.
6.
7.
BEGIN
dbms_output.put_line( to_char(SYSDATE,'dd-mm-yyyy','NLS_LANGUAGE=DUTCH') );
END;
/

ORA-06502: PL/SQL:  ошибка числа или значения
ORA-06512: на  line 2
...
Рейтинг: 0 / 0
Разница в поведении to_char в SQL и PLSQL
    #39452081
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Амаразм,

А почему не NLS_DATE_LANGUAGE?
...
Рейтинг: 0 / 0
Разница в поведении to_char в SQL и PLSQL
    #39452087
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Амаразм,

Как сказано в доке :The 'nlsparam' argument specifies the language in which month and day names and abbreviations are returned. This argument can have this form:

'NLS_DATE_LANGUAGE = language'

If you omit 'nlsparam', then this function uses the default date language for your session.

Да, SQL-машина проглатывает некорректный параметр и function uses the default date language for your session. А PL/SQL ошибку не проглатывает.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Разница в поведении to_char в SQL и PLSQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]