Festlegen des Zeilentrennzeichens bei Verwendung von bcp mit einer Formatdatei

ich benutzebcp Dienstprogramm zum Importieren von Daten inSybase Datenbank aufSolaris System

Da die BCP-Datei von einem anderen XML-Parsing-Skript generiert wird, kann ich nicht steuern, ob die Felder in der von mir gewünschten Reihenfolge generiert werden. Und jetzt unterscheidet sich die Reihenfolge der Felder in der BCP-Datei ein wenig von der Reihenfolge in der Datenbanktabelle.

Ich möchte eine Formatdatei für das bcp-Tool verwenden, um die Reihenfolge der in die Datenbank geladenen Felder zu steuern. Daher habe ich die folgende Beispiel-bcp-Datei und habe eine entsprechende Formatdatei erstellt:

Die BCP-Datei:

603289|Aug 20 2011 12:00AM|YYY aaa OVD|KLYYP8
603284|Aug 22 2011 12:00AM|XXX bbb OVD|KLPK06

die Formatdatei:

10.0
4
1  SYBCHAR   0  12   "|" 3 ver
2  SYBCHAR   0  26   "|" 2 first_dt
3  SYBCHAR   0  60   "|" 4 name1
4  SYBCHAR   0  10   "|" 1 name2

Obwohl ich bei folgendem Fehler festgefahren bin:

$bcp my_db..my_tbl in test.bcp -e error -f format.fmt -r\\n -S Sever -U user -P pw

Starting copy...
CSLIB Message:  - L0/O0/S0/N24/1/0:
cs_convert: cslib user api layer: common library error: The conversion/operation was stopped due to a syntax error in the source field.
Unexpected EOF encountered in BCP data-file.
bcp copy in partially failed

1 rows copied.

Ich vermute, die Ursache für den Fehler liegt darin, dass das Dienstprogramm bcp den Zeilentrenner mit dem Zeichen '\ n' (den ich verwendet habe) nicht erkenntod -c test.bcp um dies zu überprüfen), obwohl die-r\\n Die Option im Befehl scheint nicht zu funktionieren, daher sollte der Zeilentrenner das Zeichen '\ n' sein.

Hat jemand eine Ahnung?

Bearbeiten:

Ich habe die Formatdatei geändert und sie funktioniert jetzt einwandfrei. Ich habe das Feldtrennzeichen für das letzte Feld von '|' zu '\ n' wie folgt:

dasNeu Formatdatei:

10.0
4
1  SYBCHAR   0  12   "|" 3 ver
2  SYBCHAR   0  26   "|" 2 first_dt
3  SYBCHAR   0  60   "|" 4 name1
4  SYBCHAR   0  10   "\n" 1 name2

Wie Michael in Kommentaren erwähnt hat, ist es schwierig, Formatdateien zu verwenden. Bei Verwendung der Originalformatdatei habe ich versucht, '|' am Ende jedes Datensatzes, obwohl die Datei nicht richtig verarbeitet wurden.

Jetzt kann die Datei korrekt verarbeitet werden, obwohl ich nicht sicher bin, was vom Dienstprogramm bcp als Zeilentrennzeichen verwendet wird

Antworten auf die Frage(2)

Ihre Antwort auf die Frage