Oracle - литерал не совпадает с ошибкой строки формата

Возможный дубликат:
Простой запрос Oracle: литерал не соответствует строке формата

Я получаю следующую ошибку:

INSERT INTO CatalogueEntry VALUES('2001-12-10', 2, 14.99, 1, 0)

ERROR at line 1: ORA-01861: literal does not match format string `

Первое поле DATE формат.

Есть идеи?

Благодарю.

2 ответа

Решение

Когда вы вставляете строковое значение в столбец даты, вам необходимо преобразовать его в дату во время INSERT с использованием to_date() функция. При использовании этой функции вы будете указывать формат строки.

to_date() формат функции:

to_date( string1, [ format_mask ], [ nls_language ] )

Таким образом, ваш запрос будет выглядеть так:

insert into CatalogueEntry
values
(
  to_date('2001-12-10', 'yyyy-mm-dd'),
  2,
  14.99,
  1,
  0);

Смотрите SQL Fiddle с демо

Попробуйте этот SQL:

INSERT INTO CatalogueEntry 
              VALUES(to_date('2001-12-10','yyyy-mm-dd'), 2, 14.99, 1, 0);
Другие вопросы по тегам