'12-JUN-87'
er ikke en dato, det er en streng bogstavelig.
Hvis du vil generere en dato, der skal indsættes i en tabel, skal du enten:
- Brug en ANSI-dato bogstavelig
:
DATE '1987-06-12'
- Eller, eksplicit, konverter en streng literal til en dato
:
TO_DATE( '12-JUN-87', 'DD-MON-YY', 'NLS_DATE_LANGUAGE = American' )
Hvis du prøver at bruge en streng bogstavelig som en dato, så vil Oracle forsøge at implicit konvertere den til en dato ved hjælp af NLS_DATE_FORMAT
sessionsparameter som formatmasken. Hvis denne formatmaske ikke matcher strengens format, vil der blive genereret en undtagelse.
Bemærk:at sessionsparametrene kan ændres af brugeren og kan være forskellige for hver bruger, så du bør ikke stole på denne standardværdi.