Wie wollen Sie laden ein fixed-width-Daten-Datei, die mit SQL*Loader, die keine Zeilentrenner, sondern Felder mit Zeilenumbruch-Zeichen?

Muss ich laden ein flat file in eine oracle-Datenbank mittels SQL*Loader.

Die flat-Datei enthält ein Feld mit Zeilenumbruch-Zeichen als gültige Daten.

Die Datei ist NICHT Zeile getrennt durch einen Zeilenumbruch.

Wie würde ich Ändern, das folgende Steuerelement-Datei zu tun?

LOAD DATA
 INFILE 'mydata.dat'
 INTO TABLE emp
 ( field1    POSITION(1:4)   INTEGER EXTERNAL,
   field2    POSITION(6:15)  CHAR,
   big_field POSITION(17:7000) CHAR
 )

Hinweis: ich habe keine Kontrolle über das format der eingehenden Datei.

Note: ... indicates that the data continues to the end of the field  

example:  
1234567890abcdefghijklmnopqrstuvwxyz  
1234567890abcdefghijklmnopqrstuvwxyz  
1234567890abcdefghijklmnopqrstuvwxyz  
1234567890abcdefghijklmnopqrstuvwxyz  
1234567890abcdefghijklmnopqrstuvwxyz  
1234567890abcdefghijklmnopqrstuvwxyz  
1234567890abcdefghijklmnopqrstuvwxyz  
1234567890abcdefghijklmnopqrstuvwxyz  
1234567890abcdefghijklmnopqrstuvwxyz  
1234567890abcdefghijklmnopqrstuvwxyz  
...  

result:  
field1: 1234  
field2: 67890abcde
big_field: ghijklmnopqrstuvwxyz  
1234567890abcdefghijklmnopqrstuvwxyz  
1234567890abcdefghijklmnopqrstuvwxyz  
1234567890abcdefghijklmnopqrstuvwxyz  
1234567890abcdefghijklmnopqrstuvwxyz  
1234567890abcdefghijklmnopqrstuvwxyz  
1234567890abcdefghijklmnopqrstuvwxyz  
1234567890abcdefghijklmnopqrstuvwxyz  
1234567890abcdefghijklmnopqrstuvwxyz  
1234567890abcdefghijklmnopqrstuvwxyz  
...
  • Was bedeutet die tatsächlichen Daten Aussehen; es gibt ein paar Optionen, je nachdem es..? Auf einer Seite Hinweis: die maximale Größe einer varchar-Feld in Oracle ist 4000 Zeichen, so dass Sie möglicherweise Probleme haben, mit Ihrem big_field
  • es wird in ein blob, also wir sind gut auf die Länge. Auch dies ist nur ein Beispiel-Steuerelement-Datei.
  • Sie müssen eine Zeile Trennzeichen irgendeiner Art auch für die mit fester Länge-Dateien. Wir konnten unsere Anbieter, um die Datei ändern, w/ ein Zeilentrenner. Vielen Dank für all die Hilfe, jeder!
  • Kam gerade über diesen Beitrag, aber haben Sie versucht, mit FIX-Befehl in sqlldr-Kontroll-Datei? INFILE mydata.dat "fix 7000"
InformationsquelleAutor ScrappyDev | 2012-02-06
Schreibe einen Kommentar