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