Oracleは暗黙のTO_DATE
を実行します DATE
に挿入するときの日付以外のリテラル NLS_DATE_FORMAT
の値を使用する列 フォーマットマスクとして。日付以外のリテラルがこの形式と一致する場合は機能します(一致しない場合は機能しません)。ただし、NLS_DATE_FORMAT
変更されるとすぐに壊れます(機能していたコードは機能しないため、デバッグするのは非常に面倒ですが、誰もコードを変更しません)。
現在のNLS_DATE_FORMAT
を確認できます クエリで:
SELECT VALUE
FROM NLS_SESSION_PARAMETERS
WHERE PARAMETER = 'NLS_DATE_FORMAT';
TO_DATE
を明示的に使用することをお勧めします 正しいフォーマットマスクを使用するか、ANSI日付リテラルを使用します(例:DATE '2014-12-01'
。
insert into employees_table
values(
05,
'Sophie',
'Kuchinskey',
'[email protected]',
105,
5000000,
60,
TO_DATE( '20-sep-1994', 'DD-Mon-YYYY' )
);
または、ロケール/言語に依存しないANSI形式を使用します:
insert into employees_table
values(
05,
'Sophie',
'Kuchinskey',
'[email protected]',
105,
5000000,
60,
DATE '1994-09-20'
);