代码之家  ›  专栏  ›  技术社区  ›  lampShadesDrifter

当BCP失败(“BCP copy in failed”),但没有生成-e错误日志内容时,这意味着什么?

  •  0
  • lampShadesDrifter  · 技术社区  · 6 年前

    使用来自的BCP mssql-tools 在CentOS7上,试图将一些TSV数据复制到本地MSSQL数据库中时,BCP复制失败,并抛出错误“BCP copy in failed”。正在运行的命令是:

    TO_SERVER_ODBCDSN="-D -S MyMSSQLServer"
    RECOMMEDED_IMPORT_MODE='-c' # makes a big difference, see https://stackoverflow.com/a/16310219/8236733
    /opt/mssql-tools/bin/bcp "$TABLE" in "$filename" \
            $TO_SERVER_ODBCDSN \
            -U $USER -P $PASSWORD \
            -d $DB \
            $RECOMMEDED_IMPORT_MODE \
            -t "\t" \
            -e ${filename}.bcperror.log
    

    但是命令创建的错误日志是空的。这意味着什么?有人对解决“copy in failed”错误有进一步的调试提示吗?

    0 回复  |  直到 6 年前
        1
  •  1
  •   jamie    6 年前

    当您使用-e选项时创建的错误日志是用来捕获有关数据本身的错误的。因此,当数据溢出时,errorlog将包含错误(一个字段中的字节太多,指向的列太少)。

    在自动化环境中,如果要捕获或记录此类错误,则需要将BCP命令的输出重定向到一个文件,以便以后查看,甚至加载到SQL表中的日志表中。

    推荐文章