I have my SQL Database on Korean OS (Windows). SQL Server for Korean is installed.
I have a Oracle gateway for SQLServer on korean OS (Windows). This tranfers data from SQLServer to ORacle database (Which is installed on Korean OS - Windows).
In this scenario what should be my HS_LANGUAGE parameter set to?
HS_LANGUAGE=AMERICAN_AMERICA.WE8MSWIN1252 ?? or HS_LANGUAGE=KOREAN_KOREA.WE8MSWIN1252 ??
I tried with setting HS_LANGUAGE=KOREAN_KOREA.WE8MSWIN1252, which is giving errors while transforming decimal/ numeric data with decimals in it (eg: 2.5 from sql is stored as 2 in oracle db through gateway)
When i used HS_LANGUAGE=AMERICAN_AMERICA.WE8MSWIN1252, The data is correctly transformed.
The 'territory' part will be either 'America' or 'Korea' and this specifies the conventions for day and week numbering, default date format, decimal character delimiter and group separator, of ISO and local currency symbols.
The problem you are seeing is because there is a difference between the decimal separator used in your Oracle database and the Korean SQL*Server database. When there is a difference this can cause the information after the decimal to be lost.
If you have access to My Oracle Support the following note has more information -
When you set the territory to 'AMERICA' then the decimal separator used by the non-Oracle database is recognised correctly and no data is lost.
You could check but you should find the SQL*Server database uses a comma (or other character) as a separator and Oracle uses a decimal point or it is the other way round.