bcp格式文件和-c切换出来

我正在尝试使用bcp从Sybase ASE数据库提取logging并将其写入文件。 我需要排除数据库中的两个字段,所以我试图使用格式.fmt文件。

这是我的bcp:

 bcp Rdevdb..TBL_XFER out out1.txt -S$serv -U$user -P$pass -fbcp.fmt -c -t\| 

我需要| char是分隔符。

  1. 当我使用-c开关时,好像它忽略了格式文件,这是真的吗?

  2. 当我既不使用-n也不使用-c开关(告诉它什么格式,本地或字符),它似乎创build使用本机格式的文件,因为当我在我的文本编辑器中打开它迫使它成为一个hex编辑器。这是怎么回事?

  3. 当我包含-c和格式文件时,我删除了两个我不想要的字段,它将所有的db字段放到文件中,这就是为什么我会忽略.fmt文件。

  4. 如果我删除-c开关,并运行它没有包含在.fmt文件中的两个字段,我得到这个错误: Incorrect host-column number found in bcp format-file.

  5. 什么组合的开关,我包括在.fmt文件中,以便让我的bcp命令带给我我想要的结果?

这是.fmt文件的一部分。 在任何表字段名称中都没有空格(这不包含字段1或字段2,因为那些是我不想要的文件中的字段)。

 10.0 147 3 SYBCHAR 2 6 "|" 3 COVERAGE_CODE 4 SYBCHAR 2 6 "|" 4 DEPT 5 SYBCHAR 2 8 "|" 5 ORG 6 SYBCHAR 2 8 "|" 6 DIV 7 SYBCHAR 2 8 "|" 7 DISTRIBUTE ... 

表中有147个字段,但是当我在.fmt文件中包含所有字段时,总共有149个字段,前两行指定版本号和字段号。

谢谢你的帮助。

    或者,您可以创建仅包含您感兴趣的列(或行)的表的视图,然后对视图使用bcp。 您似乎可能将数据传输到新的存储库,因此您可能希望坚持使用-c作为字符bcp比本机文件更可共享。

    我没有使用-f标志,所以我不能说这样做。