1

我创建了一个 SQL OLEDB 数据源 (SQL Server),并且我有以下命令文本:

select replace(convert(varchar(10), dob, 111), '/', '-') As DOB FROM Person

我在执行时收到一条警告:[OLE DB Source [1]] 警告:由于从长度为 8000 的数据库列“DOB”到长度为 10 的数据流列“DOB”中检索数据,可能会发生截断。

当我尝试将外部列从 8000 更改为 10(如查询中所述)时,设计器会自动将其更改回来。我认为外部列代表数据源中的元数据。数据源中的 dob(参见上面的查询)是一个 varchar(10)。为什么它必须有8000的长度?我对SSIS没有很多经验。

4

2 回答 2

4

我找到了解决方案。我不得不这样做:

select cast(replace(convert(varchar(10), dob, 111), '/', '-') As varchar(10)) As DOB from Person
于 2012-09-03T10:15:50.257 回答
2

还有另一种解决方法可以解决这个问题:您可以忽略错误并通过在“源”块的“错误输出”选项卡中设置适当的属性来执行“截断”错误中的包。

于 2012-09-04T07:40:20.207 回答