Oracle не принимает даты до 2000 - PullRequest
2 голосов
/ 10 ноября 2010

Я делаю вставку из приложения C # .NET в базу данных Oracle. Сбой запроса выглядит примерно так:

INSERT INTO staging (create_date) VALUES ('16-Nov-1999')

Когда я запускаю его из SQL Navigator, он работает нормально. Через .NET база данных выдает:

ORA-01858: a non-numeric character was found where a numeric was expected

Я провел несколько тестовых случаев и подтвердил, что это год, вызвавший исключение. Все после 31 декабря 1999 года работает нормально.

Ответы [ 2 ]

7 голосов
/ 10 ноября 2010

Лучше использовать функцию TO_DATE при отправке значений, которые должны быть сохранены как DATE:

INSERT INTO staging 
   (create_date) 
VALUES 
   (TO_DATE('16-Nov-1999', 'DD-MON-YYYY'))
0 голосов
/ 11 ноября 2010

Проблема связана с использованием универсального поставщика System.Data.OleDB.В Oracle, System.Data.OracleClient, такой проблемы нет.

...