sql >> Database teknologi >  >> RDS >> Oracle

Transformer DT_TEXT i SSIS 2012 til Oracle CLOB

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 streng
Output0Buffer.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.




  1. Vigtigheden af ​​godt databasedesign (og 7 trin til at opnå det)

  2. Deaktiver og aktiver senere alle tabelindekser i Oracle

  3. MySQL InnoDB:kan ikke beregne statistik, fordi .ibd-filen mangler

  4. Sådan får du den første post ud af hver gruppe fra resultatet hentet ved at bruge gruppe for kommando