6 Replies Latest reply: Jun 22, 2014 2:03 AM by Analyst DP RSS

    Hebrew displayed as junk

    Analyst DP



      I'm trying to retrieve data from remote Oracle database which contains data in Hebrew. I'm using SQL Developer 4.0.1 for this purpose and getting the Hebrew letters displayed as junk.

      Some details:

      1) Oracle DB version (SELECT * FROM V$VERSION):

      Oracle Database 10g Release - 64bit Production

      PL/SQL Release - Production

      "CORE Production"

      TNS for 64-bit Windows: Version - Production

      NLSRTL Version - Production

      2) DB server OS - Windows Server 2003, 64 bit.

      3) OS, that I work on (running SQL Developer) - Windows 7 Professional, 64 bit.

      4) An Example of the problem

          This query:

      Select LOCAL_NAME

      From ITEMSECT

      Where ITEMSECT.CODE_NO in (40001,40002)

         Gave me this:



      Actually it must be (In such a way we see it in ERP):





      5) The data inputted in ERP (our operational enterprise management system) in Hebrew and stored in the DB, from which I am trying to retrieve the data. In this ERP the     data is stored properly.

          Several BI tools (like Qlikview), which use the data from the DB also display it in a proper way.

      I must note, that I am not a DBA person and my knowledge of databases is very limited.

      After searching the internet for this issue, I found out that this may be due to NLS settings incompatibilities between database, client and the application I am using (SQL Developer).


      I ran the command:

      Select *

      From nls_database_parameters


      and got the following:






      Running the command:

      Select * From nls_session_parameters

      doesn't give no row with NLS_CHARACTERSET (If I'm understanding it right - it should let me know the client charset).



      Really appreciate your help with further steps for resolving this issue.

      I'll be glad to give you more information if needed.

        • 1. Re: Hebrew displayed as junk
          Sergiusz Wolicki-Oracle

          You have a typical pass-through configuration. The Hebrew data is stored in the database but mislabeled as Western European data. You view this data correctly only in clients that are similarly mislabeled as WE8MSWIN1252. Any attempt to process the data in the database, e.g. with UPPER, will cause issues. SQL Developer is a Java tool and it converts the DB content to Unicode before displaying it. This conversion cannot work properly for mislabeled data.


          The proper solution is to fix the DB and client configurations to use IW8MSWIN1255 instead of the incorrect WE8MSWIN1252.  You can use the csalter.plb script together with csscan utility to change the database character set. Try MOS note 1213683.1. It does not document WE8MSWIN1252 to IW8MSWIN1255 but you can use analogous procedure to the WE8ISO8859P1 to IW8MSWIN1255 migration. Client configuration should change the NLS_LANG parameter in Registry (and/or environment vriables, if set there).




          • 2. Re: Hebrew displayed as junk
            Analyst DP

            Thank you for your answer, Serqiusz.

            Since I am not DBA person, I have no the permissions and the knowledge to change the database configurations.

            It works in such a way for years in the company.


            With that, maybe you could help me with some manipulations on my client in order to see the Hebrew data correctly? I mean, to configure it in a similar "incorrect" way, like it is configured in our BI tools (like QlikView).

            • 3. Re: Hebrew displayed as junk
              Sergiusz Wolicki-Oracle

              You won't be able to see Hebrew on any JDBC-based client. You need a Windows client that is OCI-based and that does not run in Win32 Unicode mode. SQL*Plus is OCI-based and runs in Win32 ANSI mode but it is a console (command prompt) application and it has problems displaying right-to-left Hebrew data.


              Once you find a (non-Oracle) client that fulfills the requirement, just set NLS_LANG=.WE8MSWIN1252 in Windows Registry.





              • 4. Re: Hebrew displayed as junk
                Analyst DP

                So in my case I have no solution for seeing Hebrew characters in SQL Developer?

                • 5. Re: Hebrew displayed as junk
                  Sergiusz Wolicki-Oracle

                  You can attempt the following cumbersome workaround to view the data (2000 byte strings max because of the RAW size limit):


                  SELECT utl_i18n.raw_to_nchar(utl_i18n.string_to_raw(column_name),'IW8MSWIN1255') FROM table_name;


                  This will attempt to pass the data as NCHAR data, which is Unicode and supports Hebrew.




                  • 6. Re: Hebrew displayed as junk
                    Analyst DP

                    It works!! I don't understand the terminology, you are using, but it works.

                    Thank you so much!!