تحويل DT_NTEXT إلى DT_Text

لذلك أنا أقوم بتحويل تاريخ إلى MMDDYYYY باستخدام التعليمة البرمجية التالية:

replace(convert(varchar(10), Absent_Date, 101), '/', '') as Absent_Date

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

enter image description here

لقد قرأت حوالي 20 مشاركة مختلفة من هنا ومواقع المنتديات الأخرى ، لكني لم أجد واحدة تعمل بشكل جيد بالنسبة لي. حاولت استخدام كائن تحويل البيانات ولكنني واجهت صعوبة في تشغيله. أنا بصراحة لا يهمني ما هو الشكل في ما دامت SSIS ستسمح لي بالتصدير إلى ملف ثابت لدي حوالي 20 ملفًا نصيًا مع تواريخ فيها يجب أن تكون بنفس التنسيق. أي مساعدة يحظى بتقدير كبير!

أنا على خادم Sql 2008 R2

0
هل جربت "nchar (10)" بدلا من varchar (10)؟
وأضاف المؤلف EkoostikMartin, مصدر
يبدو أن هذا الرابط يحتوي على حل محتمل لتتمكّن من تجربته. social.msdn.microsoft كوم/منتديات/EN-US/sqlintegrationservice & zwnj؛ ق/و hellip؛
وأضاف المؤلف swasheck, مصدر

1 إجابة

استنادًا إلى الخطأ الذي تم التقاطه ، أفترض أن البيانات الأولية الصادرة من المصدر (OLE ، ADO ، أيا كان) تشير إلى أن العمود Absent_Date هو DT_NTEXT. القرار هو تحويل ذلك إلى شيء "يعمل". أقوم عادة بتطبيق مهمتي تحويل البيانات NTEXT إلى TEXT ثم أقوم بتصنيع TEXT هذا في نوع سلسلة. إذا كانت البيانات الخاصة بك هي unicode ، فستكون مجرد تحويل NTEXT إلى WSTR ولكنني أمريكي غبي.

يمكنك هنا رؤية بيانات التعريف الخاصة بالإخراج من مصدر OLE DB الخاص بي إلى Absent_Date هي NTEXT. ستُظهر الخطوة الأخيرة (مجموعة البيانات) عمودًا جديدًا STR_Absent_Date طوله 10 ، نوع بيانات DT_STR (codepage 1252)

enter image description here

سيسمح لك استخدام هذا الأسلوب بتحويل بيانات NTEXT إلى شيء متوافق مع وجهة ملف ثابت.

0
وأضاف