sql >> Database >  >> RDS >> Oracle

Transformeer DT_TEXT in SSIS 2012 voor Oracle CLOB

Het blijkt dat SSIS Script Component zal' geen tekststream-uitvoer toestaan had het antwoord, maar ik moest uitzoeken wat de velden in het antwoord betekenden.

Ik zal alle onderdelen uitleggen, zodat het duidelijk is wat er aan de hand is.

De Script Component heeft een Output genaamd Output 0, met Output Columns forecastXML. Dat zijn standaardnamen, behalve de laatste. forecastXML heeft het gegevenstype Tekststroom [DT_TEXT]

In het script zelf heb ik een string met de naam forecastXML (ja, dezelfde naam, wat het verwarrend maakt.)

Na het vullen van de string forecastXML met gegevens, kan ik het toewijzen aan de Output0Buffer met de volgende regels:

String forecastXML = oResult.XmlResult;
Output0Buffer.AddRow();
Output0Buffer.forecastXML.AddBlobData(System.Text.Encoding.UTF8.GetBytes(forecastXML));

De eerste regel werkt voor alle gegevenstypen. Omdat ik naar een NTEXT schrijf, is de tweede regel nodig, in plaats van een rechte opdracht. De Output0Buffer.forecastXML verwijst naar het NText-gegevenstype dat is gedefinieerd in mijn Output 0. De laatste is mijn tekenreeks uit de code.

Om duidelijker te zijn, in plaats van een string te maken, zou ik

. moeten hebben
Output0Buffer.forecastXML.AddBlobData(System.Text.Encoding.UTF8.GetBytes(oResult.XmlResult));

waarbij oResut.XmlResult het resultaat is van mijn aanroep die de XML krijgt. Het toewijzen aan een string is een extra, onnodige stap.

Dit gaat naar een Oracle CLOB, dus de volgende stap is om die output naar een afgeleide kolom te brengen en mijn output forecastXML te casten als (DT_NTEXT)forecastXML. (Ik vermoed dat ik een aantal onnodige wijzigingen van typen aan het doen ben.)

En dan wijs ik dat veld toe aan mijn CLOB-veld in mijn OLE DB-bestemming.




  1. MySQL Galera-knooppunt start niet (afbreken met fout 'WSREP:[...]:60:kan primaire weergave niet bereiken:60 (Time-out bewerking)')

  2. Optimaliseer MySQL-query om te voorkomen Gebruik waar; Tijdelijk gebruiken; Bestandssorteren gebruiken

  3. Hoe lid te worden van drie tabellen in Codeigniter

  4. SQL-query om in een aaneengeschakelde tekenreeks te zoeken