【发布时间】:2015-12-28 23:50:19
【问题描述】:
我一直在尝试确定在特定列中使用哪种数据类型,因为每次将我导入/导出到我的数据库时都会遇到错误。
我已经尝试过nvarchar、float、decimal,但我无法全部上传。
这是我需要上传到我的数据库中的数据示例:
P/VHL01-032013-85433
这是错误:
*消息错误 0xc0202009:数据流任务 1:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码: 0x80004005。 OLE DB 记录可用。资料来源:“微软 SQL 服务器本机客户端 10.0" Hresult:0x80004005 说明: “未指定的错误”。 (SQL Server 导入导出向导)
*错误 0xc020901c:数据流任务 1:输入“目标输入”(60) 上的输入列“电话”(91) 出现错误。专栏 返回的状态是:“该值违反了完整性约束 列。”。(SQL Server 导入和导出向导)
*错误 0xc0209029:数据流任务 1:SSIS 错误代码 DTS_E_INDUCEDTRANSFORMFAILUREONERROR。 "输入"目标输入" (60)" 失败,因为发生错误代码 0xC020907D,并且错误行 “输入”目标输入“(60)”的处置指定失败 错误。在指定的指定对象上发生错误 零件。在此之前可能会发布更多错误消息 有关故障的信息。 (SQL Server 导入导出向导)
*错误 0xc0047022:数据流任务 1:SSIS 错误代码 DTS_E_PROCESSINPUTFAILED。组件上的 ProcessInput 方法 “目的地 - tbl_billdelivery” (47) 失败并出现错误代码 处理输入“目标输入”(60) 时出现 0xC0209029。这 已识别的组件从 ProcessInput 方法返回错误。 该错误是特定于组件的,但该错误是致命的并且 将导致数据流任务停止运行。可能有错误 在此之前发布的消息,其中包含有关失败的更多信息。 (SQL Server 导入导出向导)
*错误 0xc02020c4:数据流任务 1:尝试向数据流任务缓冲区添加行失败,错误代码为 0xC0047020。 (SQL 服务器 Import and Export Wizard) – Erl John Ejay 54 分钟前
*错误 0xc0047038:数据流任务 1:SSIS 错误代码 DTS_E_PRIMEOUTPUTFAILED。组件“源”上的 PrimeOutput 方法 - Sheet1$" (1) 返回错误代码 0xC02020C4。组件返回一个 管道引擎调用 PrimeOutput() 时的故障代码。这 失败代码的含义是由组件定义的,但是错误 是致命的并且管道停止执行。可能有错误 在此之前发布的消息,其中包含有关失败的更多信息。 (SQL Server 导入导出向导)
【问题讨论】:
-
是整个字符串吗?
-
我不同意票数接近的情况。此问题中没有任何内容要求推荐场外库、工具或资源。
-
如果您将遇到的错误以及您尝试加载数据的方式包括在内,此问题对其他人会更有用。
-
"该值违反了列的完整性约束。"嗯,这很清楚。通常,您将 NULL 放入不允许 NULL 的数据库表的列中,但作为pointed out in answers to this related question,它可能是任何其他类型的完整性约束问题。让我们看看目标表的定义,包括你的完整性约束。
-
我很困惑 - 为什么你会认为值
P/VHL01-032013-85433会是浮点数或十进制值?这是一个文本值,因此唯一有效的数据类型将是 char/varchar/nchar/nvarchar。只有您会知道您是否需要在此列中考虑 unicode 文本。解决了,然后您需要确定该字段的最大可能长度。当前值为 20 个字符。能超过吗?它实际会有多大?不要偷懒,指定(8000)或(max)。最后,该值 always 是否存在 - 即它是否可以为空
标签: sql-server ssis sqldatatypes