I have noticed a bug/difference in behavior between the unmanaged and managed ODP assemblies. Using the unmanaged assemblies, string literals marked with 'N' and containing unicode data save fine, at least with the "ORA_NCHAR_LITERAL_REPLACE" environment option set to TRUE. However, with the managed assemblies, there does not seem to be any way to force Oracle to treat these string literals as unicode data. The environment variable seems to have zero impact. The only way that I can see the unicode data not being corrupted currently is by explicitly using bind parameters with the NVarchar2 data type and, in many cases, this really isn't an option, especially not for large systems and batch operations.
Does anyone else see this issue? This is of critical importance to my group. Is there a different workaround in these cases with the introduction of the managed provider or is this a legitimate bug?