Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

SQL NLS_UPPER not working correctly for French?

niallmcpApr 5 2013 — edited Apr 5 2013
Hi,

I have a database containing text in a large number of languages, and am trying to convert characters to uppercase based on their language, but am hitting a particular problem with French.

In French, accented characters lose their accents in uppercase (é becomes E, à becomes A), whereas in other languages the accented character is retained.

However, the SQL NLS_UPPER function is not following this language rule.

Example:
select 'é', upper('é'), nls_upper('é','nls_sort = french'), nls_upper('é','nls_sort = spanish') from dual;

gives: é É É É
it should give: é É E É (the 3rd column is different)

My database characterset is AL32UTF8 - but this shouldn't matter as I am specifying the nls_sort.

Has anyone encountered and solved this problem before?

All the best.
Niall.
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on May 3 2013
Added on Apr 5 2013
3 comments
560 views