I am struggling to find possible reasons the client language is changing in a report and trying to determine if it can be ODP.NET related.
I will try to explain the situation as best I can and hopefully some of you wonderful members will have some suggestions of where to look for answers.
Here is the test case we are running (to the best of my ability to describe).
Developers create a report using Microsoft Visual Studio that will be executed against and Oracle 12.1 database.
The report is scheduled on Microsoft SSRS server to run every 30 minutes.
The client connect appears to be "ODP.NET, Managed Driver"
The client language in the report occasionally changes.
The following statement is the source of the report.
SELECT distinct
SYS_CONTEXT ('USERENV', 'IP_ADDRESS') "IP Address",
SYS_CONTEXT ('USERENV', 'LANG') CLIENT_LANG,
regexp_substr(SYS_CONTEXT ('USERENV', 'LANGUAGE'),'[^.]+',1,1) CLIENT_NLS,
SYS_CONTEXT ('USERENV', 'HOST') HOST,
SYS_CONTEXT ('USERENV', 'TERMINAL') TERMINAL,
SYS_CONTEXT ('USERENV', 'SESSION_USER') USER_NAME,
TO_CHAR(SYSDATE, 'MONTH DD, YYYY, HH24:MI:SS') DATE_TIME,
client_charset
FROM v$session_connect_info where sid=sys_context('USERENV','SID');
The CLIENT_LANG in this report does change once in a while.
This is a scheduled report so I can not figure out what would cause the change.
I am not a developer (just a DBA) but I have searched through the documentation and the only thing I find is that ODP.NET is NOT NLS_LANG sensitive (whatever that means)
I would appreciate any thoughts on....
What kind of factors might be related to ODP.NET and the client language being used to query the database?
Is it possible to "force" ODP.NET to use AMERICAN to query the database?
Regards
Tim