Вопрос

Я делаю вставку из приложения 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 -DEC-1999 'работает нормально.

Это было полезно?

Решение

Лучше использовать To_date функция При отправке значений, которые должны храниться в виде дат:

INSERT INTO staging 
   (create_date) 
VALUES 
   (TO_DATE('16-Nov-1999', 'DD-MON-YYYY'))

Другие советы

Проблема с использованием универсальной системы .Data.OLEDB поставщика. System System.data.oracleClient не имеет этой проблемы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top