Bonjour,

Voici ma question du jour

Dans la table DBA_VIEWS d'Oracle, je veux faire un sort sur la colonne VIEW_NAME.
J'obtiens un résultat curieux avec les noms de vues précédés de l'underscore : c'est comme si Oracle n'en tenait pas compte!

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
select view_name from DBA_VIEWS where view_name like '%DBA_%' order by view_name;
 
DBA_ANALYZE_OBJECTS           
DBA_APPLICATION_ROLES         
_DBA_APPLY                    
DBA_APPLY                     
_DBA_APPLY_BATCH_SQL_STATS    
_DBA_APPLY_CHANGE_HANDLERS    
DBA_APPLY_CHANGE_HANDLERS     
_DBA_APPLY_CONF_HDLR_COLUMNS  
DBA_APPLY_CONFLICT_COLUMNS    
_DBA_APPLY_CONSTRAINT_COLUMNS 
_DBA_APPLY_COORDINATOR_STATS  
_DBA_APPLY_DML_CONF_COLUMNS   
DBA_APPLY_DML_CONF_COLUMNS
J'ai regardé quel était le type de sort, il est BINAIRE.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
select * from nls_database_parameters where parameter='NLS_SORT';
 
PARAMETER                      VALUE                                   
------------------------------ ----------------------------------------
NLS_SORT                       BINARY                                  
1 row selected.
Je regarde le code ascii pour _ et je tombe sur 95 et 68 pour D donc tous les noms avec _ devraient être ensembles, non?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
select ascii('D') , ascii ('_') from dual;
ASCII('D') ASCII('_')
---------- ----------
        68         95
1 row selected.
Bon, j'avoue que je bloque sur ce point..
Je ne peux pas modifier les paramètres de sort car cela aura des impact sur les tests donc si vous savez comment faire pour "bien" trier mes données, je suis preneur; en clair je veux que toutes les vues avec _ soient classées ensembles.