"格式"的差异和" queryout" BCP中提供的选项

时间:2014-04-04 05:03:21

标签: sql-server sybase sybase-ase bcp

我正在尝试使用Windows上的BCP(版本10)将数据导入Sybase ASE 15.7(试用版)。 为此,我首先尝试使用以下命令为表创建格式文件并出现错误:复制方向必须为“in”或“out”。 'format'中的语法错误。

C:\Sybase\OCS-15_0\bin>bcp TEST_EMP2 format nul -f C:\test_files\TEST_EMP2.fmt -
c -T -t,
Copy direction must be either 'in' or 'out'.
Syntax Error in 'format'.
usage: bcp [[db_name.]owner.]table_name[:slice_num] [partition pname] {in | out}
 [filename]
        [-m maxerrors] [-f formatfile] [-e errfile] [-d discardfileprefix]
        [-F firstrow] [-L lastrow] [-b batchsize]
        [-n] [-c] [-t field_terminator] [-r row_terminator]
        [-U username] [-P password] [-I interfaces_file] [-S server]
        [-a display_charset] [-z language] [-v]
        [-i input_file] [-o output_file]
        [-A packet size] [-J client character set]
        [-T text or image size] [-E] [-g id_start_value] [-N] [-W] [-X]
        [-M LabelName LabelValue] [-labeled]
        [-K keytab_file] [-R remote_server_principal] [-C]
        [-V [security_options]] [-Z security_mechanism] [-Q] [-Y]
        [-y sybase directory] [-x trusted.txt_file]
        [--clienterr errfile] [--maxconn maximum_connections]
        [--show-fi] [--hide-vcc]
        [--colpasswd [[[db_name.[owner].]table_name.]column_name [password]]]
        [--keypasswd [[db_name.[owner].]key_name [password]]]
        [--initstring ASE initialization string] [--quoted-fname]
C:\Sybase\OCS-15_0\bin>

我在以下站点上查找了BCP实用程序选项,发现在那里没有列出创建格式文件或查询输出的选项。 http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc30191.1550/html/utility/X14951.htm

bcp [[database_name.]owner.]table_name [: [ partition_id | slice_number ] |
    partition partition_name] {in | out} datafile
    [-f formatfile]
    [-e errfile] 
    [-d discardfileprefix]
    [-F firstrow]
    [-L lastrow]
    [-b batchsize]
    [-m maxerrors]
    [-n]
    [-c]
    [-t field_terminator]
    [-r row_terminator]
    [-U username]
    [-P password]
    [-I interfaces_file]
    [-S server]
    [-a display_charset]
    [-z language]
    [-A packet_size]
    [-J client_charset]
    [-T text_or_image_size]
    [-E]
    [-g id_start_value]
    [-N]
    [-W]
    [-X]
    [-M LabelName LabelValue] 
    [-labeled]
    [-K keytab_file]
    [-R remote_server_principal]
    [-C]
    [-V [security_options]]
    [-Z security_mechanism]
    [-Q]
    [-Y]
    [-y sybase directory]
    [-x trusted.txt_file]
    [--maxconn maximum_connections
    [--show-fi]
    [--hide-vcc]
    [--colpasswd [[[database_name.[owner].table_name.]column_name
        [password]]]
    [--keypasswd [[database_name.[owner].]key_name [password]]]

但是对于SQL Server,BCP说明在以下实用程序说明中显示了format和queryout选项。 http://technet.microsoft.com/en-us/library/ms162802.aspx

_xCodexBlockxPlacexHolderx_任何人都可以告诉我,如果在Sybase ASE上的BCP中不支持使用“format”选项查询和创建格式文件的选项吗?或者有没有办法实现这些?

我知道我们可以手动创建格式文件,但这是不可行的,因为我必须为2000个表创建格式文件。

我想知道是否有人遇到类似的问题,使用BCP生成格式文件,如果有解决此问题的解决方法。

1 个答案:

答案 0 :(得分:3)

尽管语法名称相同且重叠,但Sybase ASE和MS SQL Server的实用程序却完全不同。

Sybase ASE bcp不支持queryout

此外,format files for Sybase BCP仅用于定义列数据类型,它们不用于重新排序/跳过或使用SQL Server格式文件可用的其他操作。

对于Sybase ASE,导入或导出数据不需要格式文件。只有在-c命令中未指定-n(字符模式)或bcp(纯模式)时,才需要它们。