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

时间:2012-07-03 19:20:44

标签: linux unix sybase-ase bcp

我正在尝试使用bcp从Sybase ASE数据库中提取记录并将其写入文件。我需要排除数据库中的两个字段,所以我正在尝试使用格式.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开关(告诉它是什么格式,本机或字符)时,似乎使用本机格式创建文件,因为当我打开它时在我的文本编辑器中,它强制它进入十六进制编辑器......就是这种情况?

  3. 当我包含-c时,在格式文件中我删除了我不想要的两个字段,它将所有数据库字段都放入文件中,这就是为什么我在想它' d忽略.fmt文件。

  4. 如果我删除-c开关,并使用.fmt文件中未包含的两个字段运行它,则会出现此错误:Incorrect host-column number found in bcp format-file.

  5. 开关的哪些组合以及我在.fmt文件中包含哪些内容才能让我的bcp命令为我提供我想要的结果?

  6. 这是.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个字段,前两行指定了版本和字段编号。

    感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

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

我没有使用-f标志,所以我无法说话让它以这种方式工作。