"ANSI_Varchar_Behavior=TRUE" in DSConfig.txt (DI 18.104.22.168)
I am working for a customer with a large DI 22.214.171.124 installation. I was puzzled by an issue with "ANSI_Varchar_Behavior" in the DSConfig.txt brought up by them. They told me that this parameter was set to "FALSE" in the DSConfig.txt in all their environments (many development and test DI servers) except production. I think "FALSE" is the default value. The job has been working correctly in all these servers.
For some reason, this value is set to "TRUE" in the DSConfig.txt on a pre-production box. The job still retrieves the correct number of rows from the Oracle source tables. However, when they copy the DSConfig.txt file to the production server, the job breaks and some rows are missing from the same SQL select statement and the same Oracle tables which work just fine on the pre-production box. They know how to fix it - either adding a trim function in the "where" clause or changing the value from "TRUE" to "FALSE" will do. But they demand an explanation as why the "TRUE" value works on the pre-production box but not the production box. I just couldn't think of any reasonable explanation.
They think both boxes are almost indentical. Is it possible different versions of Oracle clients on the DI servers could cause this issue? The source column is a CHAR type so the ANSI and Oracle definitely treat the trailing spaces differently. But how to explain it works when the value is "TRUE" on the pre-production server? Should it fail the job just like the production server?