سؤال

أقوم بإدراج من تطبيق 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. Oracle محدد System.data.oracleclient ليس لديه هذه المشكلة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top