Оказва се, че SSIS Script Component няма да t позволява извеждане на текстов поток имах отговора, но трябваше да разбера какво означават полетата в отговора.
Ще обясня всички части, за да е ясно какво се случва.
Компонентът на скрипта има изход, наречен Изход 0, с прогноза за изходни колони в XML. Това са имена по подразбиране с изключение на последното. forecastXML има тип данни Текстов поток [DT_TEXT]
В самия скрипт имам низ, наречен forecastXML (да, същото име, което го прави объркващо.)
След като попълня низа predictXML с данни, мога да го присвоя на Output0Buffer със следните редове:
String forecastXML = oResult.XmlResult;
Output0Buffer.AddRow();
Output0Buffer.forecastXML.AddBlobData(System.Text.Encoding.UTF8.GetBytes(forecastXML));
Първият ред работи за всички типове данни. Тъй като пиша в NTEXT, е необходим вторият ред, а не директно присвояване. Output0Buffer.forecastXML се отнася до типа данни NText, дефиниран в моя Output 0. Последният е моят низ от кода.
За да бъда по-ясен, вместо да създавам низ, трябва да имам
Output0Buffer.forecastXML.AddBlobData(System.Text.Encoding.UTF8.GetBytes(oResult.XmlResult));
където oResut.XmlResult е резултатът от моето извикване, което получава XML. Присвояването му на низ е допълнителна, ненужна стъпка.
Това отива към CLOB на Oracle, така че следващата стъпка е да отнеса този изход към производна колона и да прехвърля изходния си прогнозXML като (DT_NTEXT)forecastXML. (Подозирам, че правя някои ненужни промени на типове.)
И след това картографирам това поле към моето CLOB поле в моята OLE DB дестинация.