Thursday, February 28, 2013

_x003C_none_x003E_ error in SSIS

This is just a quick note.  I was working on an example package, and decided to change environments to make sure that everything was working correctly.

I deployed my example database, then ran the test packages that I have.

I noticed that every file started coming up with weird errors by embedding _x003C_none_x003E_ into the data.  I was not sure what to do about this, so I did a quick check and found that the text qualifiers were set to this in the code.

I did a quick find and replace all for the value and replaced it with empty string, and all of my projects began producing the right outputs.  When I went back to my main development machine, and checked its packages and outputs, I noticed that the _x003C_none_x003E_ was also present in those packages, yet they were working fine.

Well, after some internet google searches, I was able to track down that different versions and different builds of SSIS treat the <none> option in the connection manager differently, and this is what was causing the issue.

So, if you ever see this issue, the "proper" way of fixing it is to:

1.  Make sure every machine is running the same build/version of SQL Server, and thus the same build/version of SSIS.

2. Once everything is normalized, go into the package and simply "choose" none again.  If you are having this problem with fixed width flat files, I found it was possible to go in and simply change _x003C_none_x003E_ to an empty string, and this worked to fix the issue as well.  I wouldn't suggest doing it that way, as it is probably a better practice to have SSIS use whatever placeholder it likes, and will understand, instead of introducing unexpected behavior by editing the file directly.

EDIT:  Here is the best resource I have found on this issue.

http://social.msdn.microsoft.com/Forums/en-US/sqlintegrationservices/thread/ff59e4a1-a2bf-4b27-812b-28197ec982de/

No comments:

Post a Comment