Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels 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 10/03/2011, 16h26   #1
Nouveau Membre du Club
 
nob hurf
Inscription : mars 2010
Messages : 86
Détails du profil
Informations personnelles :
Nom : nob hurf
Âge : 24
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2010
Messages : 86
Points : 36
Points : 36
Par défaut NLS_COMP + tri alpha numérique

Bonjour,

Je chercher à trier une liste de code du type
A.1.1
A.1.10
A.1.2
B.1.2
etc...
or il me met le .10 avant le .2 ce qui est faux dans mon cas (je veux l'inverse).

J'ai vu qu'il faut passer le NLS_COMP à ANSI pour pouvoir faire cela:

Lorsque je fais
Code :
ALTER session SET nls_comp=ANSI.
J'ai bien le Session altered mais aucun changement en base lors de la requête:
Code :
SELECT * FROM v$nls_parameters WHERE parameter= 'NLS_COMP';
qui me renvoie binary...

De même
Code :
SELECT * FROM v$nls_parameters WHERE parameter= 'NLS_SORT';
me renvoie FRENCH
alors que
Code :
 SELECT * FROM NLS_DATABASE_PARAMETERS;
me dit que NLS_SORT est fixé à binary.

Pourquoi mon alter Session ne fonctionne pas ?

Merci d'avance
bruno_nono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 17h21   #2
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 459
Points : 10 459
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Votre liste est une chaîne de caractères, et quelque soit la méthode de tri, '10' est bien inférieur à '2'.

Ça fonctionne comme ça doit fonctionner.

Il faut que vous découpiez votre chaîne de caractères afin d'affiner votre demande de tri.
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 11
Vieux 10/03/2011, 17h30   #3
Nouveau Membre du Club
 
nob hurf
Inscription : mars 2010
Messages : 86
Détails du profil
Informations personnelles :
Nom : nob hurf
Âge : 24
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2010
Messages : 86
Points : 36
Points : 36
OK pour le problème sur le tri.
Concernant le tri il faut prendre en compte la lettre devant la série de chiffres, on ne peut pas effectuer un cast sur la lettre A en nombre. Il faut donc que je tri d'abord par la lettre et ensuite par un champ qui sera caster en nombre.

Par contre, il reste la question du pourquoi mon alter session ne fonctionne pas.
bruno_nono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 17h42   #4
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 459
Points : 10 459
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Citation:
Envoyé par bruno_nono Voir le message
Concernant le tri il faut prendre en compte la lettre devant la série de chiffres, on ne peut pas effectuer un cast sur la lettre A en nombre. Il faut donc que je tri d'abord par la lettre et ensuite par un champ qui sera caster en nombre.
Tout-à-fait !

Citation:
Envoyé par bruno_nono Voir le message
Par contre, il reste la question du pourquoi mon alter session ne fonctionne pas.
Pas de soucis de mon côté :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SELECT parameter, value FROM v$nls_parameters WHERE parameter = 'NLS_COMP';
 
PARAMETER VALUE 
--------- ------
NLS_COMP  BINARY
-- 1 row selected.
 
ALTER session SET nls_comp = ansi;
-- Session altered.
 
SELECT parameter, value FROM v$nls_parameters WHERE parameter = 'NLS_COMP';
 
PARAMETER VALUE 
--------- ------
NLS_COMP  ANSI  
-- 1 row selected.
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/03/2011, 17h47   #5
Nouveau Membre du Club
 
nob hurf
Inscription : mars 2010
Messages : 86
Détails du profil
Informations personnelles :
Nom : nob hurf
Âge : 24
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2010
Messages : 86
Points : 36
Points : 36
Ok cela marche, en effectuant le alter session sur oracle...

Moi je le faisais sur le serveur sqlplus ..

Merci
bruno_nono est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2011, 21h42   #6
Invité de passage
 
Homme Michel Michel BORNE
Programmeur débutant
Inscription : juin 2011
Messages : 1
Détails du profil
Informations personnelles :
Nom : Homme Michel Michel BORNE
Localisation : France, Morbihan (Bretagne)

Informations professionnelles :
Activité : Programmeur débutant
Secteur : Arts - Culture

Informations forums :
Inscription : juin 2011
Messages : 1
Points : 2
Points : 2
Par défaut Tri alphanumérique

Bonjour,

Enfin, je trouve un embryon de recherche.

Sans vouloir abuser, pourriez-vous développer un minimum la méthode de découpage.

Merci d'avance.

Cordialement.
jiankaii est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h40.


 
 
 
 
Partenaires

Hébergement Web