sql-loader - Dateien, die mit carriage return, line feed laden in oracle mit cr/lf

Habe ich Daten extrahieren von sql server, in dem Daten in den meisten Spalten sind carriage return und line feeds. Ich laden müssen Sie in oracle mit dem carriage return und line-feed; im Grunde habe ich zum spiegeln der Daten bilden, sql server 2012, oracle 11g.

unten ist das Beispiel meiner Datei extrahieren

[#BOR#][#EOC#]109[#EOC#]4[#EOC#]testdata_Duplicate[#EOC#]testdata_Duplicate aus dem chat[#EOC#]diese

ist

     carriage return  field[#EOC]test2[#EOR#]

Hier [#EOC#] ist die Spalte Trennzeichen, [#EOR#] ist die Zeile Trennzeichen. [#BOR#] zeigt den Anfang der Zeile. Zunächst meinen Lasten konnte nicht durch leere Zeilen in der flachen Datei(Daten entpacken). Dann habe ich [#BOR#] mit continueIf bewahren-Klausel, so dass sqlldr nicht behandeln leeren Zeilen(cr/lf) als physische Zeile.

mit [#BOR#] als Füllstoff Spalte mein laden funktioniert einwandfrei, aber carriage return oder line feed nicht geladen werden in oracle-Tabellen.

Meine ctl-Datei ist wie folgt

load data
truncate 
CONTINUEIF NEXT preserve (1:7) <> "[#BOR#]"
into table sch1.tbl1
fields terminated by '[#EOC#]'
trailing nullcols (
  field       filler,   
  a_id        integer external,
  h_id        integer external,
  title       char(128),
  descn       char(4000),
  risk        char(4000),
  comment     char(4000) terminated by '[#EOR#]')

In oracle sch1.tbl1 Tabelle Spalte Risiko hat, Daten als 'dies ist carriage return Feld' statt
"diese

ist

     carriage return  field'

Habe ich versucht zu ersetzen, char(10) Zeichenfolge [#crlf#] und ersetzen-Funktion in ctl wie wie unten

load data
    truncate 
    CONTINUEIF NEXT preserve (1:7) <> "[#BOR#]"
    into table sch1.tbl1
    fields terminated by '[#EOC#]'
    trailing nullcols (
      field       filler,   
      a_id        integer external,
      h_id        integer external,
      title       char(128),
      descn       char(4000),
      risk        char(4000) "replace(:risk,[#crlf#],chr(10))"
      comment     char(4000) terminated by '[#EOR#]')

den sql-loader-Fehler aus, der besagt SQL*Loader-309: Keine SQL-string darf als Teil von Feld-Spezifikation; ich glaube, weil meine Spalten sind CLOB-Datentyp ich bin nicht in der Lage zu verwenden ersetzen-Funktion.

Bitte helfen Sie mir, zum laden von Daten aus sql server mit cr/lnFeed in oracle-Tabellen mit sqlloader. Vielen Dank im Voraus.

InformationsquelleAutor lvss | 2014-11-19

Schreibe einen Kommentar