View Full Version : Wert 'xxxx' für tofile länger als 10 Zeichen
Hallo zusammen,
versuche gerade per Import einige Tabellen zu füllen :
QSYS/CPYFRMIMPF FROMSTMF('/home/user/datei.csv')
TOFILE(schema/tabellename)
MBROPT(*REPLACE)
RCDDLM(*CRLF)
STRDLM(*DBLQUOTE)
FLDDLM(';')
hier wird mir die Meldung ausgegeben : Wert 'xxxx' für tofile länger als 10 Zeichen
Gibt es hier eine Lösung ? ich kann nicht anfangen alle Tabellen umzubenennen
Viele Grüße
Die Tabelle hat auch einen Namen, der nur 10 stellen lang ist!
Wenn ich im SQL eine Tabelle mit "LANGER_NAME" erstelle, wird bekommt die noch einen 2. Namen
"LANGE00001". Erstelle ich nun eine Tabelle mite "LANER_NAME_UND_MENHR" wird daraus
"LANGE00002".
Mach einfach mal ein WRKF MYLIB/XXXXX* (XXXXX= Die ersten 5 Stellen des Tabellennamen)
Gruß
Ronald
Danke darauf hätte ich auch kommen müssen.
Beschäftige mich hier gerade mit einer Datenmigration von Oracle zu DB2, ist alles noch Neuland
Gibts eigentlich den perfekten Weg Daten von Oracle zur DB2 zu migrieren?
ich versuche gerade per csv, Direktverbindung mittels selbst geschriebenem Java Programm.
Auch hab ich ein Tool das direkt die Daten von A nach B pumpt.
Talend.com könnte ein Weg sein.
Alternativ Dieter Benders DB-Integration.
Dann kannst du mit Native SQL von der AS/400 auf Oracle zugreifen.
Dazu dann noch mein SQLCPY.
Dieter Benders DB-Integration kenne ich, funktioniert auch wunderbar. Ist nur etwas langsam.
Werde ich be CLOBS, BLOBS verwenden.
CSV- Import ist bis jetzt immer noch das schnellste.
Die Tabelle hat auch einen Namen, der nur 10 stellen lang ist!
Wenn ich im SQL eine Tabelle mit "LANGER_NAME" erstelle, wird bekommt die noch einen 2. Namen
"LANGE00001". Erstelle ich nun eine Tabelle mite "LANER_NAME_UND_MENHR" wird daraus
"LANGE00002".
Mach einfach mal ein WRKF MYLIB/XXXXX* (XXXXX= Die ersten 5 Stellen des Tabellennamen)
Gruß
Ronald
Kann ich hier nun einfach den Tabellennamen durch den Systemnamen "LANGE00001" ersetzen?
Brach gleich mit einem "abnormalen Fehler" ab.
Nähere Hinweise aus dem Joblog wären da schon interessant.
Ob CSV nun CLOB/BLOB überhaupt unterstützt weiß ich auch nicht, das habe ich noch nie gebraucht.
Das Problem bei den LOB's ist ggf., dass diese meist verzögert übertragen werden.
Ach ja, beim JDBC-Oracle-Treiber ist meist noch folgende Einstellung wichtig:
oracle.jdbc.TcpNoDelay=true
Bei TCP gibt es die Funktion "NAGLE" https://en.wikipedia.org/wiki/Nagle's_algorithm.
der Oracletreiber nutzte dies (bis V9, spätere kenne ich nicht) schamlos aus bis ich dahinterkam mit welcher Einstellung dies abschaltbar war.
Der Default steht leider auf "false", so dass hier Puffer und Timeout's eine Rolle spielen.
Der Treiber sendet Anforderungen erst wenn der Puffer voll ist oder ein Timeout abläuft.
Bei kurzen Anforderungen (also ein kurzer SQL) ist der Puffer meist nicht voll und TCP wartet, ob da noch was kommt. Aus natürlichen Gründen kann da aber nichts mehr kommen.
Mit der Einstellung "true" war das Ganze um Faktor 100 schneller!
Vielleicht ist das auch hier ein Grund.
CSV unterstützt kein BLOB, daher wollte ich das Java-Tool von Bender nutzen, was auch funktioniert.
Ganz dumme Frage, wo und wie setze ich die Option
oracle.jdbc.TcpNoDelay=true
in den properties von Dieter Bender ein?
336
... für große Datenmengen ist unload (AS400: CPYTOIMPF) - zip - ftp - unzip - load (AS400:CPYFRMIMPF) immer noch das schnellste.
TransferData ist reines Batch Tool , Treiber Einstellungen kann man da in den Properties bei der URL machen.
ArdGate ermöglicht Satzweisen Zugriff aus RPG, SQL, QMQRY, kann aber kein BLOB/CLOB.
D*B