sql - 将数据从最大长度为 50 的字符串移动到最大长度为 20 的字符串时,SSIS 截断警告

标签 sql sql-server ssis

Noob SSIS 请提问。我正在编写一个简单的数据库转换脚本。原始数据源将电话号码以 len = 50 的字符串形式保存在名为 Phone1 的列中。目标表将电话号码以 len = 20 的字符串形式保存在名为 Telephone 的列中。我不断收到此警告:

[110]] Warning: Truncation may occur due to inserting data from data flow column "Phone1" with a length of 50 to database column "Telephone" with a length of 20.

我尝试了一些方法,包括添加派生列任务以将 Phone1 转换为长度 = 20 - (DT_WSTR, 20) (SubString(Phone1, 1, 20)) 的 DT_WSTR 字符串,并添加要转换的 DataConversion 任务将字段 Phone1 从 WT_WSTR(50) 转换为 WT_WSTR(20),但它们都不起作用。我知道我可以在 SQL 字符串 @ OLEDB 源中 SubStrphone1 但我很想知道 SSIS 如何处理这种情况

最佳答案

根本原因 - 当源列的数据类型长度大于目标列的数据类型长度时,SSIS 数据流任务中会出现此警告消息。

解决方案 - 为了从 SSIS 解决方案中删除此警告消息,请确保源列的数据类型长度应等于目标列的数据类型长度。

关于sql - 将数据从最大长度为 50 的字符串移动到最大长度为 20 的字符串时,SSIS 截断警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21152009/

相关文章:

sql-server - SQL Server 数据库还原错误 : specified cast is not valid. (SqlManagerUI)

vb.net - SSIS 自定义脚本 : loop over columns to concatenate values

mysql - 如何修复 SSIS 中的 ODBC Driver 8.0 SQL 语法错误?

mysql - 在表中选择 (SQL)

sql - Postgres 选择枚举数组中特定数组的位置

sql - SYSDATETIME() 是否比 GETDATE() 花费更多?

sql - 按月和季度分组并汇总前 11 个月

sql-server - 具有 0 到 nvarchar(max) 列的 SSIS 中的 MDX 查询输出给出奇怪的字符

sql - 如何更好地解决排序规则冲突?

sql - 通过命令提示符导入 Oracle 数据库 .sql 文件