質問

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- 12月1999年以降のすべては正常に実行されます。

役に立ちましたか?

解決

使用する方が良い to_date関数 日付として保存される値を提出するとき:

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

他のヒント

問題は、generic System.data.oledbプロバイダーを使用することです。 Oracle固有のsystem.data.oracleclientにはこの問題はありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top