For our .net framework 4.0 Application we need case insenstive search. So I have tried setting NLS_COMP=LINGUISTIC & NLS_SORT=BINARY_CI in environmental variable.. But this is not working. But when I tried firing trigger on each logon and setting NLS_COMP for each session.. It is working.. But because of performance reason we don't want to fire on trigger for each database logon.
Pls Let me know why it is not working setting environmental variable. We are using Oracle 11g client and 10g server and connecting from our .net application through ODP.NET.
Do you see the same behavior when connecting via SQLPlus after setting the environment variables? Is this an ODP.NET specific issue? If it's not specific to ODP, you'll probably get better insight by posting in one of the generic database forums.
With respect to ODP specific solutions, have you already checked out the OracleGlobalization class?
We have always used the login trigger to set the NLS settings. Our DBA set this up when we were on 10g and still do it now that we are on 11g. There must have been a reason he set up up using the trigger. Maybe same issue you're having. Since we are using connection pooling anyway I believe the login trigger only fires once anyway and we don't have any performance problems with getting connections.