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 Oracle Discussion :

prob dans l'affichage du résultat de ma requête


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 7
    Par défaut prob dans l'affichage du résultat de ma requête
    Bonjour TLM

    j'ai un prob d'affichage du résultat d'une req SQL, j'explique :

    j'ai un acces a distance vers une BD Oracle sous UNIX avec un telnet (mon syst est WIN XP SP2)

    j'exécute des requêtes SQL, mais le résultat n'est pas vraiment lisible, le résultat est le bon mais pas de genre une tableau avec les colonnes demander

    j'ai les colonnes l'une au dessus de l'autre, puis j'ai les données (ou l'enregistrement), et c'est comme ca pour chaque enregistrement tiré a partir de ma requête

    comment avoir un style de tableau plus clair ?
    est ce que y'a un myen d'avoir le résultat sur un fichier texte ou un fichier Excel aprés l'exécution de ma requête ?

    merci d'avance

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    tu spooles dans un fichier avec un linesize (set linesize 500) suffisamment grand

  3. #3
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 462
    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 462
    Par défaut
    Citation Envoyé par super_moi
    j'exécute des requêtes SQL, mais le résultat n'est pas vraiment lisible, le résultat est le bon mais pas de genre une tableau avec les colonnes demander

    j'ai les colonnes l'une au dessus de l'autre, puis j'ai les données (ou l'enregistrement), et c'est comme ca pour chaque enregistrement tiré a partir de ma requête
    Il faut savoir que SQL*Plus formate les résultats selon divers paramètres de présentation. (Pour en avoir la liste, faire SHOW ALL).
    En particulier :
    LINESIZE définit la longueur de la ligne, par exemple 80 caractères.
    Si la longueur de l'enregistrement dépasse cette longueur, des sauts de ligne sont insérés tous les 80 caractères.
    PAGESIZE définit la taille d'une page d'affichage, en nombre de lignes, par exemple 14 lignes. Les en-têtes de colonnes sont répétés en haut de chaque page. Si on veut éviter cette répétition, on peut soit mettre PAGESIZE à 0 (ce qui a pour effet de ne plus afficher du tout les en-têtes), soit le mettre à une valeur suffisamment grande pour que toutes les données tiennent en une page (les en-têtes ne seront alors affichés qu'une seule fois).

    En jouant à la fois sur LINESIZE et PAGESIZE, vous devriez donc obtenir une présentation beaucoup plus à votre goût.

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 7
    Par défaut
    merci pour les réponses, tout est clair mais je veux avoir comment transformé tout en en requête SQL :

    j'utilise sql plus et j'ai le prompt sql>

    sql> ma requête Select

    comment rajouté les LINESIZE et PAGESIZE dans ma requête et quel sont les valeurs a donner pour en avoir l'affichage souhaité, merci

  5. #5
    Membre chevronné Avatar de NGasparotto
    Inscrit en
    Janvier 2007
    Messages
    421
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 421
    Par défaut
    LINESIZE et PAGESIZE ne sont pas à inclure dans ta requête, ce ne sont pas des paramètres SQL ni PL/SQL. Ce sont des paramètres de config de l'outil SQL*Plus.
    Tu dois donc les valoriser avant l'exécution de ta requête, exemple :
    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
    SQL> set linesize 20
    SQL> select ename, sal from emp where ename='SCOTT';
     
    ENAME
    ----------
           SAL
    ----------
    SCOTT
         30000
     
     
    SQL> set linesize 150
    SQL> /
     
    ENAME             SAL
    ---------- ----------
    SCOTT           30000
     
    SQL>
    Nicolas.

  6. #6
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 7
    Par défaut
    merci infiniment pour l'aide (réponse et détails) et cela m'aide beaucoup

    mais je découvre un autre soucis génant lui aussi :

    dans la définition des champs des tables, on définie une valeur ou un intervale pour les chaines de caractères a ne pas dépassé, mais là j'ai des champs declaré type String (80) et d'autres a (30), malgré que ses champs contient dans l'enregistrement des valeurs bcp moins que celle déclaré, et qui n'atteint en aucun cas les 80 ou les 30

    donc dans l'affichage du résultat de ma requête, j'ai les colonnes mais avec bcp de vide, exemple :

    num_a num_b Date
    ------------------------- --------------------------------- ---------------
    1542666 555548948 12-jan-2006

    donc si vous remarqué, y'a bcp d'espace inutile dans l'affichage !!! et que les colonnes num_a et num_b n'atteind jamais leurs valeurs max, en plus c'est fixe, c'est a dire par exemple pour num_a c'est 7 chiffres tjrs et pour num_d c'est 9,

    1) est ce qu'il y'a un moyen d'eviter de prendre l'espace inutile dans l'affichage ?

    2) comment faire des caractères de séparation entre les champs dans ma requête Select pour avoir un vrai style tableau ?

    et merci d'avance

  7. #7
    Membre chevronné Avatar de NGasparotto
    Inscrit en
    Janvier 2007
    Messages
    421
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 421
    Par défaut
    Citation Envoyé par super_moi
    [...]
    1) est ce qu'il y'a un moyen d'eviter de prendre l'espace inutile dans l'affichage ?
    2) comment faire des caractères de séparation entre les champs dans ma requête Select pour avoir un vrai style tableau ?
    et merci d'avance
    1) Défini une taille pour le nom de la colonne, exemple 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
    19
    20
    21
    SQL> select * from emp where rownum<=5;
     
         EMPNO|ENAME     |JOB      |       MGR|HIREDATE           |       SAL|      COMM|    DEPTNO
    ----------|----------|---------|----------|-------------------|----------|----------|----------
          7369|SMITH     |CLERK    |      7902|17/12/1980 00:00:00|      8000|          |        20
          7499|ALLEN     |SALESMAN |      7698|20/02/1981 00:00:00|     16000|       300|        30
          7521|WARD      |SALESMAN |      7698|22/02/1981 00:00:00|     12500|       500|        30
          7566|JONES     |MANAGER  |      7839|02/04/1981 00:00:00|     29750|          |        20
          7654|MARTIN    |SALESMAN |      7698|28/09/1981 00:00:00|     12500|      1400|        30
     
    SQL>  col empno format 99999
    SQL> col mgr format 9999
    SQL> /
     
     EMPNO|ENAME     |JOB      |  MGR|HIREDATE|       SAL|      COMM|    DEPTNO
    ------|----------|---------|-----|--------|----------|----------|----------
      7369|SMITH     |CLERK    | 7902|17/12/80|      8000|          |        20
      7499|ALLEN     |SALESMAN | 7698|20/02/81|     16000|       300|        30
      7521|WARD      |SALESMAN | 7698|22/02/81|     12500|       500|        30
      7566|JONES     |MANAGER  | 7839|02/04/81|     29750|          |        20
      7654|MARTIN    |SALESMAN | 7698|28/09/81|     12500|      1400|        30
    2) Défini le séparateur qui te convient le mieux dans SQL*Plus - le paramètre est COLSEP, un exemple 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
    19
    20
    SQL> select * from emp where rownum<=5;
     
         EMPNO ENAME      JOB              MGR HIREDATE                   SAL       COMM     DEPTNO
    ---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------
          7369 SMITH      CLERK           7902 17/12/1980 00:00:00       8000                    20
          7499 ALLEN      SALESMAN        7698 20/02/1981 00:00:00      16000        300         30
          7521 WARD       SALESMAN        7698 22/02/1981 00:00:00      12500        500         30
          7566 JONES      MANAGER         7839 02/04/1981 00:00:00      29750                    20
          7654 MARTIN     SALESMAN        7698 28/09/1981 00:00:00      12500       1400         30
     
    SQL> set colsep '|'
    SQL> /
     
         EMPNO|ENAME     |JOB      |       MGR|HIREDATE           |       SAL|      COMM|    DEPTNO
    ----------|----------|---------|----------|-------------------|----------|----------|----------
          7369|SMITH     |CLERK    |      7902|17/12/1980 00:00:00|      8000|          |        20
          7499|ALLEN     |SALESMAN |      7698|20/02/1981 00:00:00|     16000|       300|        30
          7521|WARD      |SALESMAN |      7698|22/02/1981 00:00:00|     12500|       500|        30
          7566|JONES     |MANAGER  |      7839|02/04/1981 00:00:00|     29750|          |        20
          7654|MARTIN    |SALESMAN |      7698|28/09/1981 00:00:00|     12500|      1400|        30
    Nicolas.

Discussions similaires

  1. MySQL : Affichage du résultat d'une requête dans un tableau
    Par mathieu dans le forum Contribuez / Téléchargez Sources et Outils
    Réponses: 7
    Dernier message: 22/09/2017, 16h51
  2. Réponses: 3
    Dernier message: 22/10/2010, 07h15
  3. Affichage du résultat d'une requête sql dans un label
    Par etincelle01 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 15/04/2010, 17h02
  4. [PHP 5.2] Affichage du résultat d'une requête SQL dans un tableau indenté
    Par ratatam25 dans le forum Langage
    Réponses: 5
    Dernier message: 07/09/2009, 16h50
  5. Affichage des résultats d'une requête dans listbox
    Par Deallyra dans le forum VBA Access
    Réponses: 8
    Dernier message: 09/10/2007, 14h09

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