باستخدام مؤشر المرفأ كنوع الإدخال باستخدام ODP.NET

StackOverflow https://stackoverflow.com/questions/933903

  •  06-09-2019
  •  | 
  •  

سؤال

أحاول استخدام RefCursor كمعلمة مدخلات على إجراء Oracle المخزن. هذه الفكرة هي تحديد مجموعة من السجلات، إطعامها في الإجراء المخزن ثم حلقات SP على المدخلات RefCursor, ، القيام ببعض العمليات لسجلاتها. لا، لا يمكنني تحديد السجلات داخل SP وبالتالي تجنب الاضطرار إلى استخدام RefCursor كأن نوع الإدخال.

لقد وجدت مثالا على كيفية القيام بذلك على (سيكون هذا هنا الرابط، ولكن يبدو أنني لا أستطيع استخدامها بعد) وثائق Oracle، لكنها تستخدم بسيطة SELECT لملء المدخلات RefCursor; ؛ وهنا يكمن فرك: يجب علي ملء ذلك من التعليمات البرمجية.

ترى، في التعليمات البرمجية لدي هذا:

[OracleDataParameter("P_INPUT", OracleDbType.RefCursor, ParameterDirection.Input)]
private List<MiObject> cursor;

ولقد جربت بالتغلغل المؤشر مع List<T>, ، أ DataTable, ، حتى مجموعة عادية من MyObject, ، ولا شيء يعمل. عندما أحاول تشغيل اختباراتي، أحصل على خطأ:

"ربط المعلمة غير صالحة"

ربما ليس الصياغة الدقيقة، كما أترجم من الإسبانية، لكن هذه هي الرسالة

أيه أفكار؟

هل كانت مفيدة؟

المحلول

أنا أيضا على اتصال مع مارك وليامز، مؤلف المقال الذي حاولت الارتباط به على مشاركتي، وقد استجاب Kinly مثل هذا:

"ليس من أي مشكلة في إرسال رسالة بريد إلكتروني إلي؛ ومع ذلك، أعتقد أنني سوف أخيب أملك في إجابتي على هذا واحد.

لسوء الحظ، لا يمكنك أن تفعل ما تحاول القيام به (قم بإنشاء Refcursor من العميل مثل ذلك).

هناك بعض المشكلات التي تشير إلى أن Refcursor يشير إلى الذاكرة المملوكة بواسطة Oracle على الخادم و Oracle ليس لديه مفهوم لعناصر عميل مثل DataTable أو قائمة .NET، إلخ.

هل لديك أي خيارات أخرى متاحة غير استخدام Refcursor؟ "

لذلك أنا أساسا أنا ثمل، وهذا السؤال مغلق. شكرا على القراءة و / أو محاولة المساعدة، لكم جميعا.

نصائح أخرى

من الذاكرة، ليس هناك OracleCursor فئة في مكان ما في مكتبة ODP.NET التي تعمل؟

ينظر الى هذه العينة بالنسبة إلى Refcursor كمدخلات إلى PL / SQL من Technet Oracle.

كلو هو أن كائن Refcursor الإدخال يجب أن ينشأ بواسطة Oracle Therself. لا يمكنك تحويل قائمة أو أي شيء آخر إلى Refcursor.

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