LOAD DATA ... POSITION(x:y) wie in ORACLE möglich?
am 12.12.2006 17:50:58 von Matthias SternHallo!
Ich muss eine ORACLE Applikation in eine MySQL Applikation umbauen und habe
bei der Anpassung der Ladeskripte folgendes Problem:
Unter ORACLE verwende ich zum Beispiel dieses Ladeskript
lt_KD0000ANRED.sql:
---
OPTIONS ( ERRORS = 100, DIRECT = TRUE )
LOAD DATA
CHARACTERSET "UTF8"
INFILE "KD000ANRED.TUF"
APPEND
INTO TABLE TABEX
(
"Mandant" CONSTANT 'BW',
"TABELLE" CONSTANT 'KD000ANRED',
"SCHLUESSEL_INTERN" POSITION(01:02) CHAR,
"SCHLUESSEL_EXTERN" POSITION(01:02) CHAR,
"TEXT" POSITION(63:96) CHAR
)
---
Aufgerufen wird es mit:
sqlldr userid=xxx/yyy control=lt_KD000ANRED.sql direct=true
Die dazugehörende Datei KD000ANRED.TUF sieht auszugsweise so aus:
....
18Sehr geehrter Herr ..., Herrn
1HERRN KLEIN
19Sehr geehrte Frau ..., Frau
2FRAU KLEIN
21Sehr geehrte Damen und Herren, Firma
4FIRMA KLEIN
....
Unter MySQL habe ich keinen äquivalenten Befehl zu POSITION() gefunden. Das
Problem ist, das ich Unmengen (>500) dieser Dateien habe und ich immer
bestimmte Spalten variabler Länger herauspicken und in die Tabelle TABEX
schreiben muss. Bei jeder datei stehen die Informationen an einer anderen
Stelle.
Gibt es eventuell die Möglichkeit aus ORACLE zu exportieren und in MySQL zu
importieren?!?
Sonst irgendwelche Ideen?
Thx, Mac