jak określić separator wiersza podczas używania bcp z plikiem formatu

ja używambcp narzędzie do importowania danych doSybase baza danych naSolaris system

Ponieważ plik bcp jest generowany przez inny skrypt analizujący xml, nie mam nad tym kontroli, aby wygenerować pola w żądanej kolejności. A teraz kolejność pól w pliku bcp jest nieco inna w kolejności w tabeli bazy danych.

Chcę użyć pliku formatu dla narzędzia bcp do sterowania kolejnością pól załadowanych do bazy danych, więc mam przykładowy plik bcp jak poniżej i skonstruowałem odpowiednio plik formatu:

plik bcp:

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

plik formatu:

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

Chociaż utknąłem na następującym błędzie:

$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.

Podejrzewam, że przyczyną błędu jest to, że narzędzie bcp nie może rozpoznać separatora wierszy, który jest znakiem „n” (użyłemod -c test.bcp sprawdzić to), chociaż-r\\n opcja w poleceniu wydaje się nie działać, co powinno określać separator wierszy jako znak „n”.

Czy ktoś ma jakąś wskazówkę?

Edytować:

Zrobiłem zmianę w pliku formatu i działa teraz poprawnie, zmieniłem ogranicznik pola dla ostatniego pola z '|' jak poniżej:

Nowy plik formatu:

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

Jak wspomniał Michael w komentarzach, trudno jest używać plików formatu. Podczas korzystania z oryginalnego pliku formatu próbowałem dodać „|” na końcu każdego rekordu, chociaż plik nie został poprawnie przetworzony.

Teraz plik może być poprawnie przetworzony, chociaż nie jestem pewien, co jest używane jako separator wierszy przez narzędzie bcp

questionAnswers(2)

yourAnswerToTheQuestion