Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/02/2008, 11h46   #1
Invité de passage
 
Inscription : février 2008
Messages : 2
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2
Points : 0
Points : 0
Par défaut unicode commande upper et nls_upper

Bonjour,

Je travaille sur base oracle avec un national character set = UTF8. Les champs NVARCHAR2 sont succeptibles de contenir des caractères unicodes latins, arabes, ou russes

Je suis succeptible d'effectuer des recherches sans tenir compte de la casse. Le 'LIKEC' fonctionne correctement par contre je n'arrive à rien dès que j'utilise le UPPER ou le NLS_UPPER. Apparemment les caractères russes ou arabes sont transformé en '¿' par la commande UPPER ou NLS_UPPER.

tests effectués avec oracle10g et sql developper 1.2.1 :
select N'ЖЗИИІ', NLS_UPPER(N'ЖЗИИІ'), NLS_LOWER(N'ЖЗИИІ') from dual;
select N' مصثنتبصث نتصثبيصثب ', NLS_UPPER(N' مصثنتبصث نتصثبيصثب '), NLS_LOWER(N' مصثنتبصث نتصثبيصثب ') from dual;
bossardo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/02/2008, 12h11   #2
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 319
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 319
Points : 5 837
Points : 5 837
Code :
1
2
3
4
5
 
SELECT unistr('\0416\0417\0418\0418\0406'),
upper(unistr('\0416\0417\0418\0418\0406')),
nls_upper(unistr('\0416\0417\0418\0418\0406'))
FROM dual
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/02/2008, 14h17   #3
Invité de passage
 
Inscription : février 2008
Messages : 2
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2
Points : 0
Points : 0
merci,

mais quelle commande faut-il utiliser pour obtenir la séquence '\0416\0417\0418\0418\0406' à partir d'une chaine de caractère saisie par un utilisateur 'ЖЗИИІ' ?
bossardo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h20.


 
 
 
 
Partenaires

Hébergement Web