I have an string
of original source and into destination table It was decimal(5,2), I try to change it with a rule
But when I run task It always fail, can someone help me what is wrong there?
Update
I also try (DT_DECIMAL,2)TRIM(NAME1)
but It still fail
The task failure may be caused by some values that cannot be converted (contains non-numeric value)
In the Data Conversion component you can set the error output to Ignore failure
then if NAME1
cannot converted to DT_I8
the new column value will be NULL
You can read more in this useful blog article:
Another WorkAround
You can achieve this using a script Component
instead of Derived Column
Just add a script component , add an output column of type DT_I8
(assuming it's name is OutColumn
) and mark NAME1
column as Input.
Inside the script window write the following script (using Vb.Net):
Public Class ScriptMain
Inherits UserComponent
Public Overrides Sub InputBuffer0_ProcessInputRow(ByVal Row As InputBuffer0)
Dim intValue as Int64
If Not Row.NAME1_ISNULL AndAlso
Not String.iSnullOrEmpty(Row.NAME1.Trim) AndAlso
Int64.TryParse(Row.NAME1.Trim, intValue) Then
Row.OutColumn = intValue
Else
Row.OutColumn_IsNull = True
End If
End Sub
End Class