sql >> Databasteknik >  >> RDS >> Oracle

Oracle NLS_DATE_FORMAT fungerar inte korrekt

Om du gör det:

alter session set nls_date_format='DD DDTH MON YYYY';

Du får ett felmeddelande, ORA-01810: format code appears twice .

Om du använder samma formatmodell som din TO_CHAR då fungerar det:

alter session set nls_date_format='DY DDTH MON YYYY';

Session altered.

select SYSDATE from dual;

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

Detta fungerar i SQL Developer och SQL*Plus.

För din uppdaterade fråga om att infoga, dokumentationen för datum- och tidsformat säger:

Så du kan inte använda en sträng med suffixet som en del av din infogning, varken uttryckligen eller via NLS_DATE_FORMAT . Du måste ta bort den från strängen eller skräddarsy formatmodellen som ska behandlas som ett fast värde.



  1. find() på modellen ger id som sträng i en miljö och int i en annan

  2. skapa ett slumptal med MYSQL

  3. Hur definierar man en anpassad ordning i ORDER BY-satsen?

  4. SQL-fråga över flera rader