Working with Text Data Sources
SSIS won't recognize it's working with a flat file, so you'll need to manually prod it to do your bidding. Here's how.
- By Eric Johnson
A common source for SSIS packages is the flat file. These are just plain text files that are delimited by some character such as a comma, pipe or tab. The problem is when you connect SSIS to a flat file, it assumes a few things about the file, specifically the data types of all the columns.
Flat files do not contain metadata so SSIS has no good way to know the data type. Further, SSIS does not look at the data and attempt to make an educated guess. What you end up with is all the columns configured with a string data type of length 50. This can cause conversion issues if your data is not a sting or truncation errors if you have more than 50 characters.
Luckily, there is a solution. Once you have set up your flat file connection, select the Advanced page in the properties dialog box as shown in Fig. 1.
|Figure 1. Set up properties for connecting to your flat file via the Advanced page in the Flat File Connection Manager Editor dialog. (Click image to view larger version.)
From here you can select each column and then change the data type and its associated properties, such as length, precision and scale. You can also change the column’s name which comes in handy when it is not included in the first row of your file.
Once you have made all the appropriate changes, SSIS will know what type of data you have and the names of all the columns.
It is much easier to make these changes in the connection than to try and use data conversion transformations later in your package. So do yourself a favor and spend a few minutes cleaning up your text data sources, you will be much happier and see fewer data problems later on.
Eric Johnson, SQL Server MVP, is the owner of Consortio Services in Colorado Springs providing IT systems management and technology
consulting. He is also the President of the Colorado Springs SQL Server
User Group. He can be contacted at www.consortioservices.com.