Всякий раз, когда вы имеете дело с типами данных DATE
или TIMESTAMP
, вы всегда должны вставлять значения DATE
или TIMESTAMP
.Вы не должны вставлять строки и полагаться на неявные преобразования для преобразования строки в DATE
или TIMESTAMP
.Вы должны явно звонить TO_DATE
или TO_TIMESTAMP
.Ваш оператор INSERT
должен также явно указывать имена столбцов, в которые вы вставляете.
Вы бы хотели, чтобы ваш оператор INSERT
выглядел примерно так
INSERT INTO FLIGHT( <<list of columns>> )
VALUES (1,
'London Heathrow',
'Miami Airport',
to_timestamp( '03/18/2012 02:35 AM', 'MM/DD/YYYY HH:MI AM'),
to_timestamp( '04/18/2012 13:35 PM', 'MM/DD/YYYY HH:MI AM') );
Вы можете настроить отображение SQL * Plus данных в определенном столбце, изменив маску формата.Например,
SQL> column dept_time format a30;
SQL> column arrv_time format a30;
заставит SQL * Plus отображать DEPT_TIME
и ARRV_TIME
в 30 горизонтальных символах (ваш текущий NLS_TIMESTAMP_FORMAT
генерирует 28 строк символов, если вы измените NLS_TIMESTAMP_FORMAT
, вы можете изменить ширину столбца, который запрашивается для отображения SQL * Plus).