I am using Eclipse and TomCat to a Oracle 10g database. Using SQL developer I can enter multi-language characters into the nvarchar2 columns. My application creates SQL update Strings that look like this:

update CLIENTINCUMBENT set UNITCODE = UNISTR('66'), EMPLOYEECODE = UNISTR('000607'), LASTNAME = 'Ыфтвууз', FIRSTNAME = UNISTR('Ощрфк'), JOBCODE = UNISTR('PM003'), BASESALARY = '108160', BASESALARYCURR = UNISTR('USD'), BONUS = '24000', BONUSELIG = 'Y', BONUSCURR = UNISTR('USD'), TGTBONUSPCT = '25000', SUPERVISOREMPLOYEECODE = UNISTR('USD'), DDE005 = UNISTR('5000'), DDE006 = UNISTR('10'), DDE007 = UNISTR('Right Wing'), DDE008 = UNISTR('M'), DDE009 = UNISTR('PHI'), DDE010 = UNISTR('USC'), DDE011 = UNISTR('001738'), DDE012 = '2000-12-22 00:00:00', DDE013 = '24', DDE014 = UNISTR('Caucasian') where clientdataid = 'A10138453627' and EMPLOYEECODE = '000607'

Note the lastname and firstname columns.

The update succeeds however SQL developer shows garbled characters in the lastname and firstname fields.

It does not matter whether I wrap the values in UNISTR or not.

Data the I enter in using the DATA view in SQL developer shows correctly in my web app in the different languages.

If I change the lastname to include both english and cyrillic characters the english characters show through but the cyrillic is garbled.

Can someone point me at what I should be looking at?

7 Years
Discussion Span
Last Post by acplayer

Things to look at:

1. Make sure that the Oracle database NLS_NCHAR_CHARACTERSET is set to AL16UTF.
2. Write the code to generate SQL to convert the characters into the unicode codes. They will look like: UNISTR('\0421\0435') in the SQL statements.
3. Make sure that any double \\ are coverted to single prior to sending the sql for action

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.