Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Oracle NLS_DATE_FORMAT não está funcionando corretamente


Se você fizer:
alter session set nls_date_format='DD DDTH MON YYYY';

Você recebe um erro, ORA-01810: format code appears twice .

Se você usa o mesmo modelo de formato que seu TO_CHAR então funciona:
alter session set nls_date_format='DY DDTH MON YYYY';

Session altered.

select SYSDATE from dual;

SYSDATE
-----------------
FRI 23RD AUG 2013

Isso funciona no SQL Developer e no SQL*Plus.

Para sua pergunta atualizada sobre inserção, a documentação do formato datetime diz:

Portanto, você não pode usar uma string com o sufixo como parte de sua inserção, explicitamente ou por meio do NLS_DATE_FORMAT . Você teria que removê-lo da string ou adaptar o modelo de formato para tratar como um valor fixo.