【发布时间】:2026-01-23 00:20:06
【问题描述】:
我在 ssis 包中有一个日期输出列,它的长度为“0”,数据类型为“dbTimeStamp”。
<outputColumn id="20" name="ChangeDate" description="" lineageId="20" precision="0" scale="0" length="0" dataType="dbTimeStamp" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="Conversion" errorRowDisposition="FailComponent" truncationRowDisposition="FailComponent" externalMetadataColumnId="19" mappedColumnId="0"/>
当我尝试通过 sssis 运行以下查询时,它给出了错误:
SELECT
'No activity to report' as 'DeviceHostName'
,'' as [ChangeDate]
,'' as 'AffectedAccount'
,'' as [Message]
,'' as [OriginalValue]
,'' as [NewValue]
,'' as 'AttackerUserName'
错误:
错误:2018-03-30 00:15:08.36 代码:0xC020901C 源:数据流任务 OLE DB 源 [1] 描述:输出列“ChangeDate”(20)在输出“OLE DB 源”时出错输出”(11)。返回的列状态为:“由于可能丢失数据,无法转换该值。”。结束错误错误:2018-03-30 00:15:08.36 代码:0xC0209029 源:数据流任务 OLE DB 源 [1] 描述:SSIS 错误代码 DTS_E_INDUCEDTRANSFORMFAILUREONERROR。 “输出列“ChangeDate”(20)”失败,因为发生了错误代码 0xC0209072,并且“输出列“ChangeDate”(20)”上的错误行处置指定错误失败。指定组件的指定对象发生错误。在此之前可能会发布错误消息,其中包含有关失败的更多信息。结束错误错误:2018-03-30 00:15:08.36 代码:0xC0047038 源:数据流任务 SSIS.Pipeline 描述:SSIS 错误代码 DTS_E_PRIMEOUTPUTFAILED。组件“OLE DB 源”(1) 上的 PrimeOutput 方法返回错误代码 0xC0209029。当管道引擎调用 PrimeOutput() 时,组件返回了失败代码。失败代码的含义由组件定义,但是错误是致命的并且管道停止执行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。结束错误 DTExec:包执行返回 DTSER_FAILURE (1)。开始时间:上午 12:15:01 结束时间:上午 12:15:08 经过时间:7.281 秒。包执行失败。步骤失败。
我应该在查询中写什么来纠正这个问题。
【问题讨论】:
-
那之前的错误是什么?该消息只是告诉我们任务停止的原因是由于错误(并要求您检查先前的错误消息
There may be error messages posted before this with more information about the failure);你实际上并没有提供所说的错误。 -
我已完全错误地编辑了帖子。请看一下
-
检查 Udai 的答案。将空字符串 (
'') 替换为NULL。
标签: sql sql-server ssis