Bonjour,

J'ai un problème que je ne 'arrive pas à résoudre.
Sur Oracle 9.2.0.1.0, j'ai une table comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
   ID_DEFINITION_CARTE : NUMBER(10)
   ID_TYPE_CARTE : NUMBER(10)
   LIBELLE : VARCHAR2(35)
Il existe une clef primaire sur la 1ère colonne, et un index non unique sur la 2ème colonne.

Lorsque je passe la requete suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
select id_definition_carte, id_type_carte, libelle from definition_carte where id_type_carte = 2;
J'obtiens le résultat ci-dessous :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
ID_DEFINITION_CARTE ID_TYPE_CARTE LIBELLE
------------------- ------------- -----------------------------------
               2029             2 SENS
              28045             2 PAYS
                 17             2 NUMERO RELEVE
                 18             2 NUMERO CARTE
                 19             2 NOM
                 20             2 PRENOM
                 21             2 DATE ACHAT
                 22             2 CODE OPERATION
                 23             2 MONTANT TTC
                 24             2 RAISON SOCIALE
                 25             2 NATURE VENTE
                 26             2 LOCALISATION
                 27             2 DEVISE
                 28             2 MONTANT DEVISE
 
14 ligne(s) sÚlectionnÚe(s).
Le résultat n'est pas trié selon la colonne ID_DEFINITION_CARTE, qui est pourtant la clef primaire.

Je pensais que les clef primaire était triée automatiquement ?

Voilà les paramètres du serveur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
SQL> SELECT * from NLS_DATABASE_PARAMETERS;
 
PARAMETER                      VALUE
------------------------------ ----------------------------------------
NLS_LANGUAGE                   AMERICAN
NLS_TERRITORY                  AMERICA
NLS_CURRENCY                   $
NLS_ISO_CURRENCY               AMERICA
NLS_NUMERIC_CHARACTERS         .,
NLS_CHARACTERSET               WE8MSWIN1252
NLS_CALENDAR                   GREGORIAN
NLS_DATE_FORMAT                DD-MON-RR
NLS_DATE_LANGUAGE              AMERICAN
NLS_SORT                       BINARY
NLS_TIME_FORMAT                HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT           DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT             HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT        DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY              $
NLS_COMP                       BINARY
NLS_LENGTH_SEMANTICS           BYTE
NLS_NCHAR_CONV_EXCP            FALSE
NLS_NCHAR_CHARACTERSET         AL16UTF16
NLS_RDBMS_VERSION              9.2.0.3.0
 
20 ligne(s) sÚlectionnÚe(s).
et les paramètres de la session :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
SQL> SELECT * FROM NLS_SESSION_PARAMETERS;
 
PARAMETER                      VALUE
------------------------------ ----------------------------------------
NLS_LANGUAGE                   FRENCH
NLS_TERRITORY                  FRANCE
NLS_CURRENCY                   Ç
NLS_ISO_CURRENCY               FRANCE
NLS_NUMERIC_CHARACTERS         ,.
NLS_CALENDAR                   GREGORIAN
NLS_DATE_FORMAT                DD/MM/RR
NLS_DATE_LANGUAGE              FRENCH
NLS_SORT                       FRENCH
NLS_TIME_FORMAT                HH24:MI:SSXFF
NLS_TIMESTAMP_FORMAT           DD/MM/RR HH24:MI:SSXFF
NLS_TIME_TZ_FORMAT             HH24:MI:SSXFF TZR
NLS_TIMESTAMP_TZ_FORMAT        DD/MM/RR HH24:MI:SSXFF TZR
NLS_DUAL_CURRENCY              Ç
NLS_COMP                       BINARY
NLS_LENGTH_SEMANTICS           BYTE
NLS_NCHAR_CONV_EXCP            FALSE
 
17 ligne(s) sÚlectionnÚe(s).
Il se trouve que sur une copie de cet même schema, tout est OK.
Il semble de plus que les nouveaux enregistrements soient ajoutés en haut et non en bas comme attendu.


Merci de votre aide...