我们可以在 SSIS 中将字符串或字符数据类型转换为 int(或数字)吗

Can we cast from string or char datatype to int (or numeric) in SSIS

我觉得这有点挑战性。我有来源 table 和目的地 table.

源 table 具有 char 数据类型的列之一,长度为 2。 目标 table 具有 int 数据类型的列之一。

任务是使用 SSIS 包将数据从源迁移到目标。在那个过程中,我使用派生列转换来处理这种转换。

源 table 中的列的值为“01”或“02”或“03”。而具有 int 数据类型的目标列无法映射到源列。因为 int 只识别“1”。 我只想要 1 或 2 或 3,并在目标列中省略 0。

我尝试了以下几件事。

尝试#1:

SUBSTRING(COLNAME, 2, 1)

这给了我“01”中的“1”,但是当我这样做时

(DT_R4) SUBSTRING(COLNAME, 2, 1 )

它完全让我失望。

尝试#2:

我试着像下面这样投射。

(DT_DECIMAL, 2)(DT_R4) SUBSTRING(COLNAME, 2, 1 )

那也不行。

如果有出路,我很感激这里的任何方向。

由于 Integer 类型的目标列 DT_I4 那么您应该在派生列中使用以下表达式:

(DT_I4)[SourceColumn]

同时检查 Null 和空字符串:

ISNULL([SourceColumn]) ? NULL(DT_I4): ([SourceColumn] == "" ? NULL(DT_I4): (DT_I4)[SourceColumn])

您是否尝试过在不使用数据转换或派生列转换的情况下直接连接源列和目标列?我认为如果源 table 中的所有数据都是数字,尽管数据类型是 char.

,它应该隐式地从 char 转换为 Integer