0

We've recently updated SSRS to 2016 from 2012 - once we updated the server and installed the ODAC we noticed the NLS settings change for reports (for example if we run SELECT * FROM V$NLS_PARAMETERS locally the NLS settings default to UK however when we run this through a report it defaults to US).

This issue is causing day parameters (TO_CHAR(DATE,'D')) and date parameters ('DD/MM/YYYY') to break.

Any advice would be greatly appreciated.

Thanks

Blake_SO
  • 1
  • 1

1 Answers1

0

Always check nls_session_parameters because that will be the one finally used by the database.

  select * from nls_session_parameters;

And use for example ALTER SESSION To MATCH the parameters with REPORT or vice versa

 ALTER SESSION SET NLS_DATE_FORMAT='DD/MM/YYYY'
psaraj12
  • 4,772
  • 2
  • 21
  • 30
  • Thanks for this - I take it this will be required individually for every report? Do you happen to know of any way to control it outside of the reports (e.g. in SSRS 2012 it just defaulted to UK NLS LANG)? Ideally we'd like to avoid going through every report with dates or currency (though if we have no choice we'll just have to manage). – Blake_SO Apr 17 '20 at 14:59
  • just check the nls_database_parameters also and try setting the NLS_LANG in report server and requery select * from nls_session_parameters; – psaraj12 Apr 17 '20 at 15:04