【问题标题】:SqlBulkCopy invalid column length...but it's notSqlBulkCopy 无效的列长度...但它不是
【发布时间】:2018-11-09 21:15:23
【问题描述】:

我的SqlBulkCopy 命令抛出异常提示

从 bcp 客户端收到一个无效的列长度,用于 colid 24。

如果我查看 Sql Server Mgmt Studio 中所示的第 24 列(从 0 开始),则它是 SpaceID 列。如果我通过 DataTable 执行此操作,则它是 Title 列。两者都在数据库中定义为varchar(255)。不过,我的专栏都没有太大。在将值添加到 DataTable 的循环中,我检查了每个值的长度并报告了任何大于 254 个字符的字符,但没有。

还有什么可能导致这个问题?

【问题讨论】:

  • 您的列映射可能搞砸了。显式配置映射以进行故障排除。否则发布表 DDL 和控制台应用程序复制。见docs.microsoft.com/en-us/dotnet/api/…
  • 显然它不喜欢 SQL 表的列多于用于批量上传的 DataTable。

标签: sql-server sqlbulkcopy


【解决方案1】:

在我的情况下,问题是布尔类型,Azure 读取了我的 .dsv 文件,并理解我的列中的“f”或 0 表示其为 false,因此 INT 或任何字符串类型对于此列来说不是实际的。我将接收器列的数据类型更改为 BIT,它对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-28
    • 2012-11-24
    • 2012-10-05
    相关资源
    最近更新 更多