В SSIS есть несколько способов, которыми вы могли бы сделать это, но пару простых будет использовать SQL. Что-то вроде этого. Я использовал TRY_CAST для INT, но вы можете изменить тип данных, если это необходимо. Первый также зависит больше от версии SQL Server. Он был представлен в SQL Server 2012.
SELECT
TRY_CAST(REPLACE(t.ColumnName,'DI','') AS INT) AS ColumnName
FROM SchemaName.TableName AS t
или другой вариант, если вы используете более старый SQL ...
SELECT
CASE
WHEN ISNUMERIC(REPLACE(t.ColumnName,'DI','')) = 1
THEN REPLACE(t.ColumnName,'DI','')
ELSE NULL
END AS ColumnName
FROM SchemaName.TableName AS t
В вашем ИСТОЧНИКЕ НА НАЗНАЧЕНИЕ вы бы изменили ИСТОЧНИК на использование сценария SQL вместо прямой таблицы / представления.