Okazuje się, że Składnik skryptów SSIS nie zezwalaj na przesyłanie strumieniowe tekstu miałem odpowiedź, ale musiałem dowiedzieć się, co oznaczają pola w odpowiedzi.
Wyjaśnię wszystkie części, aby było jasne, o co chodzi.
Składnik skryptu ma dane wyjściowe o nazwie Output 0, z danymi Output Columns forecastXML. Są to nazwy domyślne, z wyjątkiem ostatniego. forecastXML ma typ danych Strumień tekstowy [DT_TEXT]
W samym skrypcie mam ciąg o nazwie forecastXML (tak, ta sama nazwa, co czyni go mylącym.)
Po wypełnieniu ciągu forecastXML danymi, mogę przypisać go do Output0Buffer za pomocą następujących wierszy:
String forecastXML = oResult.XmlResult;
Output0Buffer.AddRow();
Output0Buffer.forecastXML.AddBlobData(System.Text.Encoding.UTF8.GetBytes(forecastXML));
Pierwsza linia działa dla wszystkich typów danych. Ponieważ piszę do NTEXT, potrzebna jest druga linia, a nie proste przypisanie. Output0Buffer.forecastXML odnosi się do typu danych NText zdefiniowanego w moim Output 0. Ostatni to mój ciąg z kodu.
Aby być bardziej przejrzystym, zamiast tworzyć ciąg, powinienem mieć
Output0Buffer.forecastXML.AddBlobData(System.Text.Encoding.UTF8.GetBytes(oResult.XmlResult));
gdzie oResut.XmlResult jest wynikiem mojego wywołania, które pobiera XML. Przypisanie go do ciągu to dodatkowy, niepotrzebny krok.
Będzie to CLOB Oracle, więc następnym krokiem jest przeniesienie tych danych wyjściowych do kolumny pochodnej i rzutowanie moich danych wyjściowych forecastXML jako (DT_NTEXT)forecastXML. (Podejrzewam, że robię niepotrzebne zmiany typów.)
A następnie mapuję to pole na moje pole CLOB w moim miejscu docelowym OLE DB.