'12-JUN-87'
är inte ett datum, det är en bokstavlig sträng.
Om du vill skapa ett datum att infoga i en tabell måste du antingen:
- Använd en ANSI-datum bokstavlig
:
DATE '1987-06-12'
- Eller, uttryckligen, konvertera en sträng bokstavlig till en datum
:
TO_DATE( '12-JUN-87', 'DD-MON-YY', 'NLS_DATE_LANGUAGE = American' )
Om du försöker använda en bokstavlig sträng som datum kommer Oracle att försöka implicit konvertera det till ett datum med NLS_DATE_FORMAT
sessionsparameter som formatmask. Om denna formatmask inte matchar strängens format kommer ett undantag att genereras.
Obs! att sessionsparametrarna kan ändras av användaren och kan vara olika för varje användare, så du bör inte lita på detta standardvärde.