Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1320 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Script oracle,probleme de tri

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Script oracle,probleme de tri

n°771786
shaman200
Posté le 15-01-2006 à 08:31:49  profilanswer
 

Salut a tous!
 
J'utilise un p'tit script que j'ai trouve sur le net.
J'ai fait quelque modifs d'ordre esthetique.
 

Code :
  1. action(){
  2. sqlplus '/ as sysdba'<<!
  3. SET ECHO OFF
  4. ALTER SESSION
  5.    SET NLS_DATE_FORMAT = 'DD/MM/YYYY HH24:MI:SS';
  6.    Set lines 80
  7.         SET FEEDBACK OFF
  8.         SET TRIMSPOOL ON
  9. col NOM format a21 heading "Nom"
  10. col TOTAL format a15 heading "Total"
  11. col FREE format a15 heading "Espace libre"
  12. col PERCENT_FREE format a20 heading "Pourcentage libre"
  13. select a.tablespace_name as nom,
  14.   lpad(substr(round(a.bytes / (1024*1024),1),1,10)||' M',10) as total,
  15.   lpad(substr(round(b.bytes / (1024*1024),1),1,10)||' M',10) as free ,
  16.   lpad(substr(round(100* b.bytes / a.bytes,1),1,8)||' %',12) as percent_free
  17. from
  18. (select tablespace_name, sum(bytes) bytes from dba_data_files
  19.    group by tablespace_name) a,
  20. (select tablespace_name, sum(bytes) bytes from dba_free_space
  21.    group by tablespace_name) b
  22. where a.tablespace_name = b.tablespace_name
  23. order by percent_free;
  24. !
  25. }
  26. action| awk '/^SQL> /, /^SQL> D/' | grep -v "SQL>"|grep -v "Session altered"


 
Ce script sert a voir l'espace libre des tablespace oracle.
Comme vous pouvez le voir je veux que les resultats soit trié par % d'espace libre.
Voici le resultat
 

Code :
  1. Nom                   Total           Espace libre    Pourcentage libre
  2. --------------------- --------------- --------------- --------------------
  3. ATXCC08UT_0211              2402 M          1250 M              52 %
  4. ATXCCC03UI                   500 M           290 M              58 %
  5. ATXCC10UT_0305              3903 M            25 M              ,6 %
  6. ATXCC10UI_0510               101 M           100 M              99 %
  7. ATXCC08UI_0601               101 M           100 M              99 %
  8. ATXCC10UT_0209              3603 M            50 M             1,4 %
  9. ATXCC17UT_0212              3503 M            50 M             1,4 %
  10. ATXCC08UI_0508               201 M           200 M            99,5 %
  11. ATXCC24UT                    501 M           500 M            99,8 %
  12. ATXCCH06AT                   151 M         150,6 M            99,8 %


 
Le probleme, c'est que des que le nombre n'est plus un entier, le tri est faux (voir ci dessus)
J'ai pas trouver de solution via le tri SQL.... :pfff:  
 
Donc si vous avez des idées, n'hesitez pas!!
 
Merci :jap:


Message édité par shaman200 le 15-01-2006 à 09:21:37
mood
Publicité
Posté le 15-01-2006 à 08:31:49  profilanswer
 

n°773808
shaman200
Posté le 20-01-2006 à 22:15:49  profilanswer
 

Je sent que vous hesitez  :D  
 
Alors,personne n'a d'avis sur la question ?  :bounce:

n°773809
Mjules
Modérateur
Parle dans le vide
Posté le 20-01-2006 à 22:41:45  profilanswer
 

tu aurais peut-être plus de réponse dans la catégorie programmation, sous catégorie SQL.


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°818325
Jacques B
Posté le 12-06-2006 à 04:33:54  profilanswer
 

Bonjour, je ne suis pas dba, alors je n'ai pu tester mais je suppose que ça va fonctionner. Ajoute une colonne numérique et tri par celle-ci.
 
select a.tablespace_name as nom,
b.bytes / a.bytes as percent_free_num
  lpad(substr(round(a.bytes / (1024*1024),1),1,10)||' M',10) as total,
  lpad(substr(round(b.bytes / (1024*1024),1),1,10)||' M',10) as free ,
  lpad(substr(round(100* b.bytes / a.bytes,1),1,8)||' %',12) as percent_free
from
 (select tablespace_name, sum(bytes) bytes from dba_data_files
   group by tablespace_name) a,
 (select tablespace_name, sum(bytes) bytes from dba_free_space
   group by tablespace_name) b
where a.tablespace_name = b.tablespace_name
order by percent_free_num;
!
}


Message édité par Jacques B le 14-06-2006 à 14:46:24

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Script oracle,probleme de tri

 

Sujets relatifs
Problème lecture sous titre quand gravure sous Linuxscript unix urgent svp
probleme compilation module conntrack RTSP[Knoppix] Problème RAID 0+1 et nForce4
Problème de configuration IP avec ifconfigProblème installation mandriva 2006
[KSH] Probleme de GREPjre1.5 probleme
Probleme de sonProbleme de lancement de serveur INN
Plus de sujets relatifs à : Script oracle,probleme de tri


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR