Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Przekształć DT_TEXT w SSIS 2012 dla Oracle CLOB

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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konwersja znaku specjalnego na zwykły tekst w Oracle

  2. Jak zweryfikować numer karty kredytowej i zidentyfikować jej typ za pomocą PL/SQL?

  3. Alternatywy dla CASE w Oracle 8i

  4. Błąd SQL:tabela lub widok ORA-00942 nie istnieje

  5. Jak sprawdzić wersję dostawcy Oracle dla ole-db. Dostawca OraOLEDB.Oracle