Skip to Content
0
Former Member
Dec 06, 2011 at 10:51 PM

Default NLS instead of localized (Danish) crashing SQL w/ "Invalid number"?

183 Views

Exploring the root cause for our Oracle SQL not working in our SAP MII 12.2

Proof of Concept installation, we found that all our Oracle JDBC

connections in MII 12.2 are somehow somewhere set by default to Danish

NLS (our native language).

This results in that decimal seperators are switched from default ".,"

to ",.", meaning that all numeric conversions of strings expect

comma "," to be the decimal seperator.

This results in ORA- invalid numbers of to_number() and calculations on all such number strings that used to

work with xMII 11.5.

We have work-around'ed the issue by setting the following INIT command

on each and every Oracle connection:

alter session set NLS_NUMERIC_CHARACTERS='.,'

But we believe the right solution would be to reset SAP MII / NW to the

default (American) so it would not be tampering with the NLS - and to

hinder further undiscovered side effects of the changed NLS.

How do we do change the NW/MII NLS globally?

Steps for Reconstruction

SELECT * FROM v$nls_parameters

Old MII 11.5 connections displays:

NLS_LANGUAGE AMERICAN

NLS_NUMERIC_CHARACTERS .,

etc.

Our MII 12.2 displays:

NLS_LANGUAGE DANISH

NLS_NUMERIC_CHARACTERS ,.

[work arounded to:]

NLS_NUMERIC_CHARACTERS .,

Thank you Very Much!

Mogens