on 12-06-2011 10:51 PM
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
Hello,
if I am not making a mistake, it's adjustable on the DB. You can assign each user a own language and this will take affect the NLS.
Which language has the user, that established the connection from the mii to the db? Please change the language for the user from danish to xxx on the DB. Inside MII or NW Disconnect from the DB and reconnect.
Hope this help you out..
BR
Pedro Iglesias
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Pedro, thank you very much for you work-around.
It might be technically possible but not easy in our restricted environment. Also, that would require even more cumbersome changes for each DB side than the current workaround.
AND it currently works (was set to default=American) with the same DB user on the same DB from xMII 11.5 - so it is a specific change with our MII 12.2 installation.
Mike, the work-around is that we make the ALTER SESSION on each connector init command, not on each call.
But with that work-around we need to change every NLS param on every database, not just the decimals.
Otherwise, the days are still translated to MANdag instead of MONday etc. which we don't want.
User | Count |
---|---|
11 | |
6 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.