Ukázalo se, že komponenta skriptu SSIS nebude' t povolit textový proudový výstup měl odpověď, ale musel jsem zjistit, co znamenají pole v odpovědi.
Vysvětlím všechny části, aby bylo jasné, o co jde.
Komponenta skriptu má výstup nazvaný Výstup 0 s výstupními sloupci forecastXML. To jsou výchozí názvy kromě posledního. forecastXML má datový typ Textový stream [DT_TEXT]
V samotném skriptu mám řetězec nazvaný forecastXML (ano, stejný název, díky čemuž je to matoucí.)
Po naplnění řetězce forecastXML daty jej mohu přiřadit k Output0Buffer s následujícími řádky:
String forecastXML = oResult.XmlResult;
Output0Buffer.AddRow();
Output0Buffer.forecastXML.AddBlobData(System.Text.Encoding.UTF8.GetBytes(forecastXML));
První řádek funguje pro všechny datové typy. Protože píšu do NTEXTu, je potřeba spíše druhý řádek než přímé zadání. Output0Buffer.forecastXML odkazuje na datový typ NText definovaný v mém výstupu 0. Poslední je můj řetězec z kódu.
Aby to bylo jasnější, místo vytváření řetězce bych měl mít
Output0Buffer.forecastXML.AddBlobData(System.Text.Encoding.UTF8.GetBytes(oResult.XmlResult));
kde oResut.XmlResult je výsledek mého volání, které získá XML. Přiřazení k řetězci je další, nepotřebný krok.
Jde o Oracle CLOB, takže dalším krokem je přenést tento výstup do odvozeného sloupce a přenést můj výstup forecastXML jako (DT_NTEXT)forecastXML. (Mám podezření, že dělám nějaké nepotřebné změny typů.)
A pak toto pole namapuji na své pole CLOB v cíli OLE DB.