Change datatype of SSIS flat file data with string "NULL" values

305 Views Asked by At

In my SSIS project I have to retrieve my data from a flat csv file. The data itself looks something like this:

AccountType,SID,PersonID,FirstName,LastName,Email,Enabled
NOR,0001,0001,Test,Test0001,[email protected],TRUE
NOR,1001,NULL,Test,Test1002,[email protected],FALSE
TST,1002,NULL,Test,Test1003,[email protected],TRUE

I need to read this data and make sure it has the correct datatypes for future checks. Meaning SID and PersonID should have a numeric datatype, Enabled should be a boolean. But I would like to keep the same columns and names as my source file.

It seems like the only correct way to read this data trough the 'Flat File Source'-Task is as String. Otherwise I keep getting errors because "NULL" is literally a String and not a NULL value.

Next I perform a Derived Column transformation to get rid of all "NULL" values. For example, I use the following expression for PersonId:

(TRIM(PersonID) == "" || UPPER(PersonID) == "NULL") ? (DT_WSTR,50)NULL(DT_WSTR,50) : PersonID

I would like to immediatly convert it to the correct datatype by adding it in the expression above, but it seems impossible to select another datatype for the same column when I select 'Replace 'PersonId'' in the Derived Column dropdown box.

So next up I thought of using the Data Conversion task next to change the datatypes of these columns, but when I use this it only creates new columns, even when I enter the output alias to remain the same.

How could I alter my solution to efficiently and correctly read this data and convert its values to the correct datatypes?

0

There are 0 best solutions below