Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/08/2007, 14h28   #1
Membre actif
 
Avatar de Peanut
 
Inscription : décembre 2003
Messages : 375
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 375
Points : 192
Points : 192
Par défaut Comment caler les nombres à gauche dans une colonne ?

Suite de mes soucis de formatage...

Ma colonne c est un NUMBER(18,6) qui se retrouve collé à droite dans mon fichier de spool. Or je voudrais le coller à gauche de la colonne.
J'ai essayé COLUMN tab.c JUSTIFY LEFT sans succès.

En pis-aller j'ai tenté une conversion TO_CHAR(tab.c) : l'alignement se fait bien à gauche , par contre la colonne s'est agrandie à 40 caractère de largeur (alors qu'avant elle prenait bien juste la taille max des données) !

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SET LINESIZE 200
SET PAGESIZE 0
SET FEEDBACK OFF
SET TRIMSPOOL ON
SET COLSEP '|'
 
COLUMN tab.c JUSTIFY LEFT <-- ???
 
SPOOL xxx.dat
 
SELECT a, b, c FROM  tab;
 
SPOOL OFF;
QUIT
Peanut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 14h33   #2
Membre actif
 
Avatar de Scual
 
Inscription : avril 2006
Messages : 149
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2006
Messages : 149
Points : 185
Points : 185
Envoyer un message via MSN à Scual
Bonjour,

as-tu essayé de forcer la largeur des colonnes à la main ? (set long)

Bon courage.
Scual est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 14h34   #3
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

Informations professionnelles :
Activité : Chef de projet
Secteur : Bâtiment

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
Tu peux essayer TO_CHAR avec un format
Code :
1
2
 
SELECT TO_CHAR(tab.c,'999G9999G9999G9999D99') FROM tab
__________________
Garuda गरूड
Brahmâ la Guerre et Vishnu la Paix

Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 14h37   #4
Membre actif
 
Avatar de Peanut
 
Inscription : décembre 2003
Messages : 375
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 375
Points : 192
Points : 192
Le problème c'est que je ne connais pas a priori la taille max des nombres de cette colonne. (à moins que je puisse indiquer MAX(tab.c) comme valeur dans une de vos 2 solutions ? )

PS : et le TO_CHAR c'est quand même du contournement de problème, ça m'étonne qu'il n'y ait pas une bête option pour préciser l'alignement
Peanut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 14h40   #5
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

Informations professionnelles :
Activité : Chef de projet
Secteur : Bâtiment

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
Citation:
Envoyé par Peanut
Le problème c'est que je ne connais pas a priori la taille max des nombres de cette colonne. (à moins que je puisse indiquer MAX(tab.c) comme valeur dans une de vos 2 solutions ? )

PS : et le TO_CHAR c'est quand même du contournement de problème, ça m'étonne qu'il n'y ait pas une bête option pour préciser l'alignement
Pour le TO_CHAR, tu connais qd même la taille maxi .de tes données (18 chiffres dont 6 décimales) donc tu peux adapter le format en conséquence !
Pour SQL+, je n'utilise jamais cet outil, désolé
__________________
Garuda गरूड
Brahmâ la Guerre et Vishnu la Paix

Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 14h54   #6
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

Informations professionnelles :
Activité : Chef de projet
Secteur : Bâtiment

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
Code :
1
2
 
SET NUMFORMAT 999G999G999D999999
__________________
Garuda गरूड
Brahmâ la Guerre et Vishnu la Paix

Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 15h08   #7
Membre actif
 
Avatar de Peanut
 
Inscription : décembre 2003
Messages : 375
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 375
Points : 192
Points : 192
Citation:
Envoyé par Garuda
Pour le TO_CHAR, tu connais qd même la taille maxi .de tes données (18 chiffres dont 6 décimales) donc tu peux adapter le format en conséquence !
Pour SQL+, je n'utilise jamais cet outil, désolé
Oui, tu as raison, je peux indiquer 18.6 comme MAX. J'aurais quand même préféré avoir le vrai MAX dynamique (qd'autant que si par la suite on change la taille du NUMBER, il ne faudra pas oublier de changer ce MAX dans MON programme...) mais je pense que ça va fonctionner quand même. (le fichier est retraité par la suite par d'autres programmes...)
Peanut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 15h24   #8
Membre actif
 
Avatar de Peanut
 
Inscription : décembre 2003
Messages : 375
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 375
Points : 192
Points : 192
Citation:
Envoyé par Garuda
Code :
1
2
 
SET NUMFORMAT 999G999G999D999999
OK, ça fixe bien la taille de la colonne, mais ça applique le même formatage à tous les nombres (pas top), et le TO_CHAR appliqué dessus fait perdre ce formatage et donc la taille de la colonne avec.

Tant pis, je vais me débrouiller en faisant un traitement a posteriori.
Merci.
Peanut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 15h33   #9
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

Informations professionnelles :
Activité : Chef de projet
Secteur : Bâtiment

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
Citation:
Envoyé par metalink
[FONT=courier] set arraysize 1
set serveroutput on
set pagesize 50
column empno format 99999
column ename format a20 [/FONT]
__________________
Garuda गरूड
Brahmâ la Guerre et Vishnu la Paix

Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 15h44   #10
Membre actif
 
Avatar de Peanut
 
Inscription : décembre 2003
Messages : 375
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 375
Points : 192
Points : 192
Citation:
Envoyé par Garuda
...
Oui ! Ca fonctionne en faisant ça :
Code :
1
2
3
COLUMN TO_CHAR(c) format A19
 
SELECT TO_CHAR(c) FROM tab;
Seul inconvénient, comme je l'ai dit, c'est que ça oblige à changer le code si la taille n'est plus 18.6 un jour ...
Mais bon.
Peanut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 15h48   #11
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

Informations professionnelles :
Activité : Chef de projet
Secteur : Bâtiment

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
Moi, je ferais
Code :
1
2
3
COLUMN c format 999G999G999G999D9999999
select c from tab
pour eviter le to_CHAR
__________________
Garuda गरूड
Brahmâ la Guerre et Vishnu la Paix

Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 15h53   #12
Membre actif
 
Avatar de Peanut
 
Inscription : décembre 2003
Messages : 375
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 375
Points : 192
Points : 192
Je fais un TO_CHAR pour obtenir un alignement à gauche que je n'arrive pas à avoir autrement...
Peanut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 16h14   #13
Membre actif
 
Avatar de Scual
 
Inscription : avril 2006
Messages : 149
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2006
Messages : 149
Points : 185
Points : 185
Envoyer un message via MSN à Scual
Rebonjour,

Voici les tests que j'ai effectué sur mon serveur :
Code :
1
2
3
4
5
6
7
8
9
10
 
CREATE TABLE testdev (a NUMBER(5));
CREATE sequence testdev_seq;
 
BEGIN
FOR i IN 1..10 LOOP
INSERT INTO testdev VALUES (testdev_seq.NEXTVAL);
END LOOP;
END;
/
Bon ça c'est pour le petite histoire

Puis voici les résultats de select :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
SELECT a FROM testdev;
 
         A
----------
         1
         2
         3
         4
         5
         6
...
Vérif avec le justify :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
COLUMN toto JUSTIFY LEFT
SELECT a totoFROM testdev;
 
TOTO
----------
         1
         2
         3
         4
         5
         6
...
Résultat des courses :
Le justify permet de configurer l'alignement du HEADING et pas des données.

Tu es obligé de passer par to_char.

++
Scual est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 16h17   #14
Membre actif
 
Avatar de Peanut
 
Inscription : décembre 2003
Messages : 375
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 375
Points : 192
Points : 192
Citation:
Envoyé par Scual
Rebonjour,

Résultat des courses :
Le justify permet de configurer l'alignement du HEADING et pas des données.

Tu es obligé de passer par to_char.

++
Ah ben d'accord, je pouvais toujours m'escrimer avec mon JUSTIFY !
Merci pour le retour.
Peanut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 16h19   #15
Membre actif
 
Avatar de Peanut
 
Inscription : décembre 2003
Messages : 375
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 375
Points : 192
Points : 192
Question subsidiaire : est-ce qu'il y a un site qui reprend toutes les commandes SQL*PLUS (fonctions, syntaxe, ...) ? Parce que je galère un peu avec Google pour trouver des infos...
Peanut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 16h24   #16
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

Informations professionnelles :
Activité : Chef de projet
Secteur : Bâtiment

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
ici
__________________
Garuda गरूड
Brahmâ la Guerre et Vishnu la Paix

Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 16h26   #17
Membre actif
 
Avatar de Peanut
 
Inscription : décembre 2003
Messages : 375
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 375
Points : 192
Points : 192
Parfait : je bookmarke !
Peanut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 16h40   #18
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

Informations professionnelles :
Activité : Chef de projet
Secteur : Bâtiment

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
Et pourrais tu faire aussi
?
__________________
Garuda गरूड
Brahmâ la Guerre et Vishnu la Paix

Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 16h50   #19
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 533
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 533
Points : 6 469
Points : 6 469
http://download.oracle.com/docs/cd/B...a90842/toc.htm
__________________
Rédacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 17h06   #20
Membre actif
 
Avatar de Scual
 
Inscription : avril 2006
Messages : 149
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2006
Messages : 149
Points : 185
Points : 185
Envoyer un message via MSN à Scual
Petit dernier pour la route :
http://www.ss64.com/orasyntax/sqlplus.html
Scual est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h26.


 
 
 
 
Partenaires

Hébergement Web