2016-06-20 3 views
-1

Я создал пустую таблицу - на мой веб-сайт, который содержит кучу tables--, которая имеет следующие столбцы/типы данных:SQL - буквальный не соответствует строка формата в INSERT INTO

ИМЯ - VARCHAR2

MRN - НОМЕР

DATE_S - ДАТА

E - ДАТА

DELI - ДАТА

WB - VARCHAR2

ST_ID - VARCHAR2

КОММЕНТАРИИ --VARCHAR2

EI - ЧИСЛО

Ниже Вы один из почти 800 строк кода я использую для заполнения таблицы ,

INSERT INTO SANDBOX.W_C VALUES ('S,E',11300033,'2012-02-18 00:00:00','2012-03-01 00:00:00','2013-02-18 00:00:00','N','006i',NULL,NULL); 

Когда я запускаю этот кусок кода я получаю следующее сообщение: literal does not match format string. Что я делаю не так?

+0

Возможный дубликат [Простой Oracle запрос: буквальный не соответствует строка формата] (HTTP: // StackOverflow .com/questions/4884071/simple-oracle-query-literal-does-not-match-format-string) –

+0

@PaulL Я видел этот вопрос, но я до сих пор не понимаю, что не так с моим кодом. –

+0

Что не так с кодом, именно то, что было не так с кодом другого пользователя, - вам нужно использовать функцию 'to_date'. –

ответ

1

Когда вы сообщаете дату в виде строки, база данных использует его настройки по умолчанию, чтобы попытаться преобразовать строку. Лучший способ справиться с этим - использование to_date, как и в ответе scaisEdge.

Однако, вы также можете изменить маску даты по умолчанию с помощью alter session, прежде чем запускать insert заявления:

ALTER SESSION SET NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'; 
2

Вам нужно to_date

INSERT INTO SANDBOX.W_C VALUES ('S,E',11300033, 
    TO_DATE('2012-02-18', 'yyyy-mm-dd'), 
    TO_DATE('2012-03-01', 'yyyy-mm-dd'), 
    TO_DATE('2013-02-18', 'yyyy-mm-dd'),'N','006i',NULL,NULL); 
+0

есть более быстрый способ - у меня почти 800 строк аналогичного кода «INSERT INTO ...» –

+0

С хорошим редактором - простая задача. – scaisEdge

+0

более быстрый способ вставить значение в фиктивную таблицу с столбцом даты, например varchar, а затем заполнить правую таблицу с помощью select, который преобразует varchar в дату. – scaisEdge

Смежные вопросы