SQL NLS_UPPER not working correctly for French?
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.