This discussion is archived
2 Replies Latest reply: Jan 2, 2013 1:37 AM by mkirtley-Oracle RSS

Need clear understanding on HS_LANGUAGE parameter

887834 Newbie
Currently Being Moderated
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.

Please help me understand the scenario here.

Thank you.
  • 1. Re: Need clear understanding on HS_LANGUAGE parameter
    887834 Newbie
    Currently Being Moderated
    Can anyone please help me understand this?
  • 2. Re: Need clear understanding on HS_LANGUAGE parameter
    mkirtley-Oracle Expert
    Currently Being Moderated
    Hi,
    The HS_LANGUAGE parameter has 3 sections -

    HS_LANGUAGE=language_territory.character_set

    For example, in your settings -

    HS_LANGUAGE=AMERICAN_AMERICA.WE8MSWIN1252
    HS_LANGUAGE=KOREAN_KOREA.WE8MSWIN1252

    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 -

    Gateway and Decimal Digits (Doc ID 1453148.1)

    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.

    Regards,
    Mike

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points