Hallo zusammen,
seit letzter woche beschäftigt mich ein Problem.
und zwar habe ich eine External table um daten aus der Datei zu lesen.
Alles anzeigen
Die struktur der Daten ist die folgende
Bis letzte Woche war alles super, doch ab letzter Woche gibt es in der Datei einen Datensatz, dass die Sache komplizierter macht.
Und zwar sieht der Datensatz folgendermaßen aus:
das ganze sollte dann eben in 3 Spalten aufgeteilt werden
1. 1
2. null
3. Text1 text[\t]text
Das Problem liegt im 3. Feld und zwar kommt da ein Tab vor, und ich meine aus diesem Grund wird dieser in Hochkomma geliefert.
Der erste Ansatz Funktion
OPTIONALLY ENCLOSED BY '"' zu nutzen ist gescheitert und zwar weil Oracle bei dem Einsatz diese Funktion die vorstehenden Leerzeichen entfernt, somit wird aus einer 3 spaltigen eine 2 splatige Zeile.
und der Wert aus der dritten spalte rückt in die 2. spalte.
Ein einfache Lösung habe bis jetzt nicht gefunden. sind hier evnt Oracle experten?
seit letzter woche beschäftigt mich ein Problem.
und zwar habe ich eine External table um daten aus der Datei zu lesen.
Quellcode
- create table external_example (
- col1 Number
- ,col2 Varchar2(20)
- ,col3 Varchar2(20)
- )
- ORGANIZATION EXTERNAL
- (
- TYPE ORACLE_LOADER
- DEFAULT DIRECTORY DATA
- ACCESS PARAMETERS
- (
- RECORDS DELIMITED BY NEWLINE
- BADFILE 'BadFile.bad'
- LOGFILE 'LogFile.log'
- NODISCARDFILE
- FIELDS TERMINATED BY 0x'9'
- MISSING FIELD VALUES ARE NULL
- (
- col1
- ,col2
- ,col3
- )
- )
- LOCATION ('file_with_tabs.txt')
- )
- ;
Die struktur der Daten ist die folgende
#unimportant header#
1[\t]Text1[\t]Text2
2[\t]qwerty[\t]qwer
3[\t]Text3[\t]Text4
4[\t]Text Text[\t]Text5
[\t] = Tab character = x09
Bis letzte Woche war alles super, doch ab letzter Woche gibt es in der Datei einen Datensatz, dass die Sache komplizierter macht.
Und zwar sieht der Datensatz folgendermaßen aus:
#unimportant header#
1[\t][\t]"Text1 text[\t]text"
[\t] = Tab character = x09
das ganze sollte dann eben in 3 Spalten aufgeteilt werden
1. 1
2. null
3. Text1 text[\t]text
Das Problem liegt im 3. Feld und zwar kommt da ein Tab vor, und ich meine aus diesem Grund wird dieser in Hochkomma geliefert.
Der erste Ansatz Funktion
OPTIONALLY ENCLOSED BY '"' zu nutzen ist gescheitert und zwar weil Oracle bei dem Einsatz diese Funktion die vorstehenden Leerzeichen entfernt, somit wird aus einer 3 spaltigen eine 2 splatige Zeile.
und der Wert aus der dritten spalte rückt in die 2. spalte.
Ein einfache Lösung habe bis jetzt nicht gefunden. sind hier evnt Oracle experten?
MfG ShureG
There are 10 kinds of people. Those who understand binary notation, and those who do not.
There are 10 kinds of people. Those who understand binary notation, and those who do not.