مشكلة إدخال البيانات في حقل VARCHAR باستخدام إجراء مخزن

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

  •  03-07-2019
  •  | 
  •  

سؤال

وأنا تحميل بعض البيانات من DB2 إلى SQL2005. يحتوي الجدول حقل نصي واحد الذي هو 2000 حرفا طويلة في DB2 ولكن تم إعدادها باعتبارها VARCHAR (2000) في SQL.

عند أركض إدراج بلدي في متصفح الاستعلام يقوم بمعالجة ما يرام ويتم نسخ البيانات بشكل صحيح، ولكن عندما يتم تشغيل البيان نفسه في إجراء مخزن بلدي البيانات لهذا الحقل فقط يتم نسخها بشكل غير صحيح ويظهر على شكل سلسلة من الأحرف غريبة.

وحقل يمكن أن تحتوي على أحرف التحكم في بعض الأحيان ولكن المشكلة تحدث حتى عندما لا.

هل هناك تحديد ولست بحاجة لتطبيق الإجراء المخزن بلدي من أجل الحصول على إدراج للعمل بشكل صحيح؟

وأو هل أنا بحاجة إلى استخدام جبيرة أو تحويل على البيانات من أجل الحصول عليها الظهور بشكل صحيح.

وشكرا.

تحديث: شكرا لاقتراحاتكم. ويبدو الآن أن المشكلة سببها البرامج التي استخدمناها لإنشاء ملقم مرتبط الذي يحتوي على قاعدة بيانات DB2. هذا لا يمكن التعامل مع حقل 2000 حرفا طويلة عند تشغيله عن طريق إجراء مخزن ولكن يمكن عند تشغيله بشكل تفاعلي.

وحصلت في النهاية المشكلة عن طريق الربط الملعب في 10 حقول 200 شخصية طويلة للتحميل ومن ثم إعادة انضم لهم مرة أخرى، عندما كانوا في قاعدة البيانات SQL.

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

المحلول 3

وكان سبب هذه المشكلة عن طريق 3rd الطرف البرمجيات التي استخدمناها لإنشاء ملقم مرتبط إلى قاعدة البيانات DB2. هذا لا يمكن التعامل مع حقل 2000 حرفا طويلة عند تشغيله عن طريق إجراء مخزن ولكن يمكن عند تشغيله بشكل تفاعلي.

وحصلت في النهاية المشكلة عن طريق الربط الملعب في 10 حقول 200 شخصية طويلة للتحميل ومن ثم إعادة انضم لهم مرة أخرى، عندما كانوا في قاعدة البيانات SQL.

نصائح أخرى

وهذا يبدو وكأنه البيانات القادمة من DB2 هي في مجموعة أحرف مختلفة. يجب عليك التأكد من أنها ليست EBCDIC أو شيء من هذا القبيل.

وأيضا، في محاولة استدعاء الإجراء المخزن الخاص بك من استوديو SQL Server إدارة (متصفح الاستعلام)، لمعرفة ما اذا كان يعمل على الإطلاق.

وقد ترغب في تغيير VARCHAR الخاص بك (2000) إلى nvarchars (2000) (في الإجراء المخزن وكذلك الجدول - أفترض أنه موجود كمعلمة). وهذا من شأنه السماح لهم بعقد حرفين بايت. انها سوف تعتمد على تكوين DB2 ولكن قد يكون ذلك انها تصدير UTF-16 (أو ما شابه) بدلا من UTF-8.

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