Det viser sig, at SSIS Script Component vandt' t tillade tekststreamoutput havde svaret, men jeg var nødt til at finde ud af, hvad felterne betød i svaret.
Jeg vil forklare alle delene, så det er klart, hvad der foregår.
Script-komponenten har et output kaldet Output 0, med Output Columns forecastXML. Det er standardnavne undtagen det sidste. forecastXML har datatypen Tekststrøm [DT_TEXT]
I selve scriptet har jeg en streng kaldet forecastXML (ja, samme navn, hvilket gør det forvirrende.)
Efter at have udfyldt strengen forecastXML med data, kan jeg tildele den til Output0Bufferen med følgende linjer:
String forecastXML = oResult.XmlResult;
Output0Buffer.AddRow();
Output0Buffer.forecastXML.AddBlobData(System.Text.Encoding.UTF8.GetBytes(forecastXML));
Den første linje fungerer for alle datatyper. Fordi jeg skriver til en NTEXT, er den anden linje nødvendig, snarere end en lige opgave. Output0Buffer.forecastXML refererer til NText-datatypen defineret i min Output 0. Den sidste er min streng fra koden.
For at være mere klar burde jeg have
i stedet for at oprette en strengOutput0Buffer.forecastXML.AddBlobData(System.Text.Encoding.UTF8.GetBytes(oResult.XmlResult));
hvor oResut.XmlResult er resultatet af mit opkald, der henter XML. At tildele den til en streng er et ekstra, unødvendigt trin.
Dette går til en Oracle CLOB, så næste trin er at tage det output til en afledt kolonne og cast min output forecastXML som (DT_NTEXT)forecastXML. (Jeg formoder, at jeg laver nogle unødvendige typer ændringer.)
Og så knytter jeg det felt til mit CLOB-felt i min OLE DB-destination.