Skip to Main Content
  • Questions
  • Oracle Reports 11g showing junk characters fron nvarchar2 column stored in Oracle database 12c

Breadcrumb

May 4th

Question and Answer

Sergiusz Wolicki

Thanks for the question, Alok.

Asked: March 17, 2018 - 5:49 am UTC

Last updated: April 10, 2018 - 1:57 am UTC

Version: Oracle Database 12c Weblogic 11g

Viewed 1000+ times

You Asked

Dear Sir,

Our Oracle 12c database and Weblogic 11g are hosted in SunOS 5.11 11.2 environment.

The output from nls_database_parameters is given below:

NLS_RDBMS_VERSION 12.1.0.2.0
NLS_NCHAR_CONV_EXCP FALSE
NLS_LENGTH_SEMANTICS BYTE
NLS_COMP BINARY
NLS_DUAL_CURRENCY $
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_SORT BINARY
NLS_DATE_LANGUAGE AMERICAN
NLS_DATE_FORMAT DD-MON-RR
NLS_CALENDAR GREGORIAN
NLS_NUMERIC_CHARACTERS .,
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_CHARACTERSET AL32UTF8
NLS_ISO_CURRENCY AMERICA
NLS_CURRENCY $
NLS_TERRITORY AMERICA
NLS_LANGUAGE AMERICAN

We are using Weblogic 11g and Forms and Reports 11g for our applications. We are able to store data in nvarchar2 columns in "Hindi" language using forms and forms are also displaying Hindi data from nvarchar2 columns properly. We have set NLS_LANG parameter in .profile of weblogic user as AMERICAN_AMERICA.UTF8 for this purpose.

Our applications run in Internet Explorer on Windows 7 client machines. We have not set NLS_LANG parameter on client machines. The Forms on all client machines are showing data correctly from nvarchar2 columns storing Hindi Text.

But our report containing data from nvarchar2 column is showing junk characters. It seems that report is not picking up NLS_LANG parameter from .profile of weblogic.

Kindly Guide me for the solution.

Regards.

Alok Varshney

Update on 20 March 2018

The characters shown in the report are
¿¿ ¿¿ ¿¿¿¿

whereas data in table column nvarchar2 is बी एन नायक

Please help.

and we said...

These particular characters (reverse question marks) mean that the NLS_LANG variable is set to .WE8ISO8859P1 or .WE8MSWIN1252 instead of the required .AL32UTF8

Check the configuration docs ( https://docs.oracle.com/middleware/11119/classic/use-reports/pbr_conf002.htm#i1007158 ) and look where to set the NLS_LANG variable, for example like this:

<envVariable name="NLS_LANG" value="AMERICAN_AMERICA.AL32UTF8"/>



Is this answer out of date? If it is, please let us know via a Comment

More to Explore

Administration

Need more information on Administration? Check out the Administrators guide for the Oracle Database