2

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'以降はすべて正常に実行されます。

4

2 に答える 2

7

DATEとして保存される値を送信する場合は、 TO_DATE関数を使用することをお勧めします。

INSERT INTO staging 
   (create_date) 
VALUES 
   (TO_DATE('16-Nov-1999', 'DD-MON-YYYY'))
于 2010-11-10T20:23:39.203 に答える
0

問題は、汎用のSystem.Data.OleDBプロバイダーの使用にあります。Oracle固有のSystem.Data.OracleClientにはこの問題はありません。

于 2010-11-11T16:24:31.073 に答える