IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sql*Plus Oracle Discussion :

Affichage dans un SPOOL (format .txt)


Sujet :

Sql*Plus Oracle

  1. #1
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 115
    Points : 59
    Points
    59
    Par défaut Affichage dans un SPOOL (format .txt)
    Bonjour,

    Voici le code que j'utilise pour récupérer dans un fichier les résultats d'un certain nombre de requêtes.

    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
    27
    28
    29
    30
    31
     
    SET ECHO OFF
    SET TIMING OFF
    SET TERMOUT OFF
    SET TAB OFF
    SET EMBEDDED OFF
    SET TRIMSPOOL ON
    SET TRIMOUT ON
    SET HEADING OFF
    SET PAGESIZE 10000
    SET LINES 250
    SET COLSEP "|"
    SET NULL ''
    SPOOL C:\TXT_FichierSortie.txt APPEND
     
    SELECT 10 AS id_champ1, 1 AS id_champ2, to_char(sysdate,'dd/mm/yyyy hh24:mi:ss') AS date_clot, to_char(date_sortie,'yyyy'), count(rowid) AS nbj
    FROM tb1
    WHERE ...
    GROUP BY to_char(date_sortie,'yyyy');
     
    SELECT 10 AS id_champ1, 4 AS id_champ2, to_char(sysdate,'dd/mm/yyyy hh24:mi:ss') AS date_clot, to_char(date_sortie,'yyyy'), count(rowid) AS nb
    FROM tb1
    WHERE ...
    GROUP BY to_char(date_sortie,'yyyy');
     
    SELECT 11 AS id_champ1, 5 AS id_champ2, to_char(sysdate,'dd/mm/yyyy hh24:mi:ss') AS date_clot, to_char(date_sortie,'yyyy'), statut, count(.rowid) AS nb
    FROM tb2
    WHERE ...
    GROUP BY to_char(date_sortie,'yyyy'), statut;
     
    SPOOL OFF
    Mais je rencontre les problèmes suivants pour l'affichage de mes informations:
    - mes champs "numériques" sont alignés à droite avec des espaces vides avant --> j'aimerais qu'il n'y ait pas d'espace vide avant les valeurs chiffrées
    - si une colonne est vide, j'ai un blanc au lieu de ne rien avoir
    - les requêtes qui ne renvoient aucune ligne affichent l'information "aucune ligne sélectionnée" alors que j'aimerai ne rien avoir.

    Ce que j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
         10|    1|29/11/2012 12:05:27|2012|    194
         10|    1|29/11/2012 12:05:27|2011|      55
     
    aucune ligne sélectionnée
     
         11|    5|29/11/2012 12:07:07|2001| |       1
    Ce que j'aimerais avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    10|1|29/11/2012 12:05:27|2012|194
    10|1|29/11/2012 12:05:27|2011|55
    11|5|29/11/2012 12:07:07|2001||1
    J'imagine qu'il faut agir au niveau des "SET" en début de fichier, mais je ne sais pas quelles sont les paramètres ni quelles valeurs utiliser pour obtenir en affichage ce que je veux.

    Merci beaucoup à tous pour votre aide précieuse.
    MarieO

  2. #2
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Citation Envoyé par marieo Voir le message
    ... les requêtes qui ne renvoient aucune ligne affichent l'information "aucune ligne sélectionnée" alors que j'aimerai ne rien avoir...
    Vite fait en passant : c'est SET FEEDBACK OFF qu'il vous faut pour ce point-là.
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  3. #3
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 115
    Points : 59
    Points
    59
    Par défaut
    merci pour le "SET FEEDBACK OFF".

    Je continue de chercher pour la supression des espaces vides avant les valeurs chiffrées et le caractère vide si un champ est null.
    Je n'ai pas encore trouvé de solution...

    MarieO

  4. #4
    Membre actif
    Inscrit en
    Janvier 2010
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 135
    Points : 234
    Points
    234
    Par défaut
    Citation Envoyé par marieo Voir le message
    Je continue de chercher pour la supression des espaces vides avant les valeurs chiffrées et le caractère vide si un champ est null.
    Je n'ai pas encore trouvé de solution...
    Post-processing:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    perl -pi -e 's/^ +//' spool.lst; perl -pi -e 's/\| +/|/g' spool.lst

Discussions similaires

  1. format d'affichage dans un DataGridview
    Par solitude dans le forum Windows Forms
    Réponses: 1
    Dernier message: 12/11/2008, 15h42
  2. Problème d'affichage dans un fichier suite à un dir>fichier.txt
    Par paix02200 dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 20/08/2007, 12h53
  3. Réponses: 2
    Dernier message: 30/10/2006, 22h14
  4. Zone de texte dans etat, mauvais format d'affichage EURO?
    Par electrosat03 dans le forum Access
    Réponses: 4
    Dernier message: 01/03/2006, 09h46
  5. Format d'affichage dans WATCH
    Par Cyrik dans le forum MFC
    Réponses: 2
    Dernier message: 01/12/2005, 15h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo