3 Replies Latest reply on May 17, 2012 10:18 AM by Sergiusz Wolicki-Oracle

    NLS_LANG : AMERICAN_AMERICA.WE8ISO8859P15 or AMERICAN_AMERICA.WE8ISO8859P1?

    taha
      Hi all,

      We have a dedicated server for data bases ( Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 on sun4u sparc SUNW,Sun-Fire-480R) and NLS_LANG= AMERICAN_AMERICA.WE8ISO8859P15 and other servers where we have different applications (one of them is SQL*Plus: Release 10.2.0.4.0 on HP-UX B.11.31 U ia64 ) and in .profile NLS_LANG is set to AMERICAN_AMERICA.WE8ISO8859P1

      SQL> select * from NLS_DATABASE_PARAMETERS ;

      NLS_LANGUAGE = AMERICAN
      NLS_TERRITORY= AMERICA
      NLS_CHARACTERSET= WE8ISO8859P15



      SQL> SELECT * FROM NLS_SESSION_PARAMETERS ;
      NLS_LANGUAGE = AMERICAN
      NLS_TERRITORY= AMERICA
      NLS_CALENDAR = GREGORIAN

      I thought that when using unix system we should set NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1 so oracle will do the conversion however on the same remote server some scripts export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P15).

      My question is it correct to export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P15 on the remote server ?


      Thanks
      Taha
        • 1. Re: NLS_LANG : AMERICAN_AMERICA.WE8ISO8859P15 or AMERICAN_AMERICA.WE8ISO8859P1?
          damorgan
          Is anything broken?

          If it is please describe the breakage in detail.

          If not ... don't fix it.
          • 2. Re: NLS_LANG : AMERICAN_AMERICA.WE8ISO8859P15 or AMERICAN_AMERICA.WE8ISO8859P1?
            taha
            Hello,

            Nothing is broken (until now, i never used them and i am not the one who wrote these scripts), however i was wondering why they (on the remote server) are using NLS_LANG = AMERICAN_AMERICA.WE8ISO8859P15 while on the same server the NLS_LANG= AMERICAN_AMERICA.WE8ISO8859P1 ( in .profile).

            These scripts where originally used with oracle client v9.2 ( and set NLS_LANG = AMERICAN_AMERICA.WE8ISO8859P15) , oracle client version was upgraded to v10.2 so i thought i should update them and faced the dilemma of NLS_LANG :?
            do you think i should leave the NLS_LANG as it is in those scripts ?


            Thanks
            Taha

            Edited by: taha on 12 mars 2012 22:37

            Edited by: taha on 13 mars 2012 09:46

            Edited by: taha on 3 mai 2012 10:43
            • 3. Re: NLS_LANG : AMERICAN_AMERICA.WE8ISO8859P15 or AMERICAN_AMERICA.WE8ISO8859P1?
              Sergiusz Wolicki-Oracle
              NLS_LANG should generally be set to the character set of data that the script operates on. WE8ISO8859P1 is similar to WE8ISO8859P15 but not identical. The main difference is the presence of the Euro currency symbol and a few additional Latin characters (e.g. "oe" ligature) in WE8ISO8859P15. If your scripts process pure 7-bit ASCII data, then NLS_LANG does not really matter (both character sets define the ASCII sub-range identically). But if they process French characters, then you must identify which encoding is the data in. For example, does the data contain the Euro symbol with the code 0xA4, or the "oe" ligature at 0xBD or maybe the "1/2" symbol at 0xBD instead?


              -- Sergiusz