В настоящее время я пытаюсь вставить даты в свою локальную базу данных Oracle, вставка написана в java-файле JAR, который использует подстановочные знаки. ВСТАВИТЬ работает, если я посылаю даты утратившим однако при попытке отправить дату, я получаю следующее сообщение об ошибке:Oracle Prepared Statement - ORA-01821: формат даты не распознан
ORA-01821: date format not recognized
Я выбежала две команды SQL:
SELECT PARAMETER, VALUE FROM v$nls_parameters;
SELECT CURRENT_TIMESTAMP FROM DUAL;
которые возвращают эти данные:
PARAMETER VALUE
---------------------------------------------------------------- ----------------------------------------------------------------
NLS_LANGUAGE ENGLISH
NLS_TERRITORY UNITED KINGDOM
NLS_CURRENCY £
NLS_ISO_CURRENCY UNITED KINGDOM
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE ENGLISH
NLS_CHARACTERSET AL32UTF8
NLS_SORT BINARY
NLS_TIME_FORMAT HH24.MI.SSXFF
NLS_TIMESTAMP_FORMAT DD-MON-RR HH24.MI.SSXFF
NLS_TIME_TZ_FORMAT HH24.MI.SSXFF TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH24.MI.SSXFF TZR
NLS_DUAL_CURRENCY €
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
19 rows selected
CURRENT_TIMESTAMP
------------------------------------
16-JAN-14 08.03.06.437000000 EUROPE/
LONDON
После глядя на данные выше, я попытался изменить мое подготовленное заявление, чтобы соответствовать метки времени, показано:
TO_TIMESTAMP(?,'DD-MON-RR HH24.MI.SSXFF TZR')
TO_TIMESTAMP(?,'DD-MON-RR HH24.MI.SSXFF')
Где? это значение подстановочного знака, которое я передаю с использованием java i.e. interaction.getStartDate();
Кто-нибудь знает, как найти правильный формат или где я иду не так? Я смотрел онлайн последние пару дней, и я полностью озадачен.
Зачем вам нужен формат даты? Форматы даты предназначены для преобразования строк и даты. – MrBackend
Я не контролирую настройки базы данных, и поле было настроено как TIMESTAMP –
. В базе данных уже есть даты в базе данных: 17-JUL-13 15.31.07.000000000 –