Bonjour,

J'exécute une requête SQL sur une base oracle 9.2.0.5 installée sur serveur Unix. L'ordre d'affichage des résultats est différent si le client oracle est sur Unix ou sur Windows. Le client Oracle sur Windows affiche dans l'ordre croissant la 1ere colonne IOLOTN (en fonction des autres paramètres de la commande).
Le client Oracle sur Unix affiche dans n'importe quel ordre la 1ere colonne IOLOTN (en fonction des autres paramètres de la commande).

Ci-dessous la requête que je ne peux pas modifier (hormis les valeurs).

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
SELECT IOLOTN, IOLOTS, IOMCU, IOITM, IOMMEJ
  FROM PRODDTA.F4108
 WHERE  ( IOITM = 716607.000000 AND IOMCU = '       01M01' ) AND  ( IOMMEJ >= 111089 AND IODLEJ <= 111089 )  ORDER BY IOITM ASC,IOMCU ASC,IOMMEJ ASC ;
La plan d'exécution indique que la requête utilise un index dont voici les paramètres.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
IOITM	NUMBER	1
IOMCU	NCHAR	2
IOLOTN	NCHAR	3
Ci-dessous le résultat obtenu avec le client Unix. La 1ere colonne n'est pas classée par ordre croissant.

IOLOTN IOLOTS IOMCU IOITM IOMMEJ
------------------------------ ------ ------------ ---------- ----------
0786K 01M01 716607 113276
0786B 01M01 716607 113276
0786E 01M01 716607 113276


Cette différence d'affichage entre Unix et Windows est-elle connue ?
Comment peut-on classer par ordre croissant la 1ere colonne sans devoir toucher à la requête SQL ? Faut-il créer un autre index ?

Merci d'avance