как указать разделитель строк при использовании bcp с файлом формата

Я используюbcp утилита для импорта данных вSybase база данных наSolaris система

Поскольку bcp-файл генерируется другим XML-скриптом, я не могу управлять им, чтобы он генерировал поля в нужном мне порядке. И теперь порядок полей в файле bcp немного отличается от порядка в таблице базы данных.

Я хочу использовать файл формата для инструмента bcp, чтобы контролировать порядок полей, загружаемых в базу данных, поэтому у меня есть пример файла bcp, как показано ниже, и соответственно создан файл форматирования:

BCP-файл:

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

формат файла:

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

Хотя я застрял на следующей ошибке:

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

Я подозреваю, что причина ошибки заключается в том, что утилита bcp не может распознать разделитель строк, который является символом '\ n' (я использовалod -c test.bcp чтобы проверить это), хотя-r\\n Опция в команде, кажется, не работает, которая должна указывать разделитель строк как символ '\ n'.

У кого-нибудь есть ключ?

Редактировать:

Я изменил формат файла, и теперь он работает нормально, я изменил разделитель полей для последнего поля с '|' на \ n, как показано ниже:

новый формат файла:

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

Как Майкл упомянул в комментариях, сложно использовать форматные файлы. При использовании файла оригинального формата я попытался добавить '|' в конце каждой записи, хотя файл не был обработан правильно.

Теперь файл может быть обработан правильно, хотя я не уверен, что утилита bcp использует в качестве разделителя строк

Ответы на вопрос(2)

Ваш ответ на вопрос