sql >> Databáze >  >> RDS >> Oracle

Transformujte DT_TEXT v SSIS 2012 pro Oracle CLOB

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.




  1. Převeďte skript MS SQL na Mysql a Oracle

  2. Hodnota automatického přírůstku MySQL se zvyšuje, i když se vložení nezdaří kvůli chybě

  3. Nepodporovaná možnost konfigurace pro services.db:'images'

  4. jak přesunout šablonu otisku prstu do databáze Oracle