【发布时间】:2013-04-09 02:15:27
【问题描述】:
当字段包含逗号字符时,我在 SSIS 中的批量插入失败。我的平面文件源是制表符分隔的,并且在许多情况下,文本字段将包含逗号。例如,UserComment 可能有逗号。这会导致批量插入失败。
如何让 SSIS 忽略逗号?我认为它会自动发生,因为行分隔符是 {CR}{LF} 而列分隔符是“Tab”。为什么它在逗号处吠叫?另请注意,我目前没有使用格式文件。
提前致谢。
更新:
这是我在 SSIS 中遇到的错误:
错误:批量插入任务中的 0xC002F304,批量插入任务:发生错误并显示以下错误消息:“批量加载数据转换错误(类型不匹配或无效字符指定的代码页)第 183 行第 5 列(电子邮件地址)。批量加载数据转换错误(指定代码页的类型不匹配或无效字符)第 182 行第 5 列(电子邮件地址)。批量加载数据转换错误(类型不匹配或无效字符对于指定的代码页)第 181 行第 5 列(电子邮件地址)。”。
任务失败:批量插入任务
它似乎在记录 131988 上失败,这就是为什么我认为这是因为“某事,某事”电子邮件没有空间。 131988 之前的许多记录都很好。
131988 01 MEMPHIS, TN someone@somewhere.com
131988 02 NORTH LITTLE ROCK, AR someone@somewhere.com,someone1@somewhere1.com
131988 03 HOUSTON, TX someone@somewhere.com,someone1@somewhere1.com
【问题讨论】:
-
它是否需要文本限定,例如,双引号或文本字段周围的东西?这与分隔符是制表符还是逗号的问题是分开的。
-
查看更新。它不应该期待文本限定,我没有指定任何与此相关的任何内容或在任何内容周围使用双引号。
-
email,email 的三个记录(这可能是问题所在)。也超过目标列的长度。我认为会抛出截断错误而不是无效字符,但我会更改源代码并测试以确定它实际上是长度还是逗号。
-
错误“指定代码页的类型不匹配或无效字符”具有误导性。我试图将数据写入源长度大于目标长度的字段。当我解决长度问题时,它起作用了。谢谢。
-
我很高兴听到它成功了!我应该从“类型不匹配”部分猜到了。我反而走上了“无效字符”的报春花路径。赢得一些,失去一些......