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 :

Probléme avec un spool


Sujet :

SQL Oracle

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 6
    Points
    6
    Par défaut Probléme avec un spool
    Bonjour !

    J'éspére écrire au bon endroit ...
    Alors voila mon probléme, je fais un spool dans un fichier csv, d'un select sur une base oracle.

    Si je lance oracle et que j'écris ma requéte tout se passe bien, je sort bien les infos que je veux.
    Par contre mon spool va me générer mon fichier mais certaines lignes vont étre vides ...
    Et j'arrive pas a comprendre pourquoi ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    spool C:\Metier.csv;
     
    SELECT MAT||';'||SUBSTR(a.COD_UO,3,3)||';'||LIB_LG_EMPLOI_GEST||';'||c.LIB_LG_UO||';'||d.LIB_LG_UO||';'
    from HS_AFF_PRIN_ETA_VGR a, HR_EMP_GEST_VGR b, HR_UO_VGR c, HR_UO_VGR d 
    where a.COD_EMPLOI_GEST = b.COD_EMPLOI_GEST 
    and a.COD_UO_DEPT=c.COD_UO
    and a.COD_UO=d.COD_UO;
     
    spool off;
    Merci d'avance

  2. #2
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    Le probléme est le méme dans un fichier txt ...
    Le fichier sortant va contenir des lignes blanches, je vois pas ce qui peut provoquer ce genre de chose ...

    J'ai revérifié la requéte, elle ne saute pas les lignes que le spool saute ...

  3. #3
    Membre averti Avatar de Wurlitzer
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 469
    Points : 408
    Points
    408
    Par défaut
    Ca veux dire quoi que tu as verifié ta requete ? Tu l'as executé sous SQL*Plus ou sous un autre outils comme TOAD.

    SQL*PLus formate ses sorties en particulier il fait des pages. Il faut faire un

  4. #4
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    Je l'ai tésté avec ODBC et avec Toad en effet, et a chaque fois elle me sort la méme chose. Une liste sans trou, qui séléctionne exactement tout ce que je veux.


    Je fait déja le set page, je te met le fichier sql dans son intégralité.

    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
    set pagesize 0;
    set termout off;
    set feedback off;
    set linesize 800;
    spool C:\Metier.csv;
     
    SELECT MAT||';'||SUBSTR(a.COD_UO,3,3)||';'||LIB_LG_EMPLOI_GEST||';'||c.LIB_LG_UO||';'||d.LIB_LG_UO||';' 
    from HS_AFF_PRIN_ETA_VGR a,HR_EMP_GEST_VGR b,HR_UO_VGR c,HR_UO_VGR d 
    where a.COD_EMPLOI_GEST = b.COD_EMPLOI_GEST 
    and a.COD_UO_DEPT = c.COD_UO
    and a.COD_UO = d.COD_UO;
     
    spool off;
    set termout on;
    set feedback on;
    set pagesize 60;

  5. #5
    Membre averti Avatar de Wurlitzer
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 469
    Points : 408
    Points
    408
    Par défaut
    T'es sure que c'est des lignes blanches. (postes un exemple de resultat, 5 ou lignes pas plus).

    Ce ne serait pas plutot la fin de tes lignes qui sont pleine d'espace. Dans ce cas ajoute


  6. #6
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    Non c'est bien des lignes blanches ...

    La ligne d'au dessus est bien la ligne que je souhaite, et celle d'en dessous est bien celle que je veux aussi ...

    J'ai fait le test de modifier un peu ma requete pour qu'elle ne m'affiche qu'une ligne ( une de celle qui passe pas dans mon spool ) y'as aucun problémes sous Toad, par contre si je la spool ca va me faire une ligne blanche dans mon CSV

  7. #7
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    Pour les exemples, je t'ai fait des screens :

    Résultat ODBC
    Résultat CSV

    Merci pour ton aide

  8. #8
    Membre averti Avatar de Wurlitzer
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 469
    Points : 408
    Points
    408
    Par défaut
    Déjà tu joues une requete différente entre le spool et l'ODBC. Puisque que tu fais dans le spool la concaténation avec les ";" et que dans l'ODBC

    Ensuite c'est pire que ce que tu dis. Ce n'est pas une ligne blanche qui s'insère mais plutot une ligne qui disparait. Ou est la ligne 1305. A moins que le tri soit différent.

    En conclusion, peux tu refaire le test avec la meme requete sous ODBC qu'avec le spool et faire une recherche pour retrouver la ligne 1305

  9. #9
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    Je me suis mal éxprimée.

    Tout le probléme est la ... Des lignes disparaissent ...
    Et j'arrive pas a comprendre pourquoi !
    Je n'arrive pas a cerner la logique du truc... C'est pas un champ spécial qui fait ca, puisque les libéllés que je vais chercher pour 1305 apparaissent sur d'autres lignes ...

    J'ai tenté de faire ma requéte seulement sur 1305, y'as pas eu de problémes.
    Par contre j'ai fait le spool de 1305 et j'ai pris une ligne blanche a la place de 1305 ...

  10. #10
    Membre averti Avatar de Wurlitzer
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 469
    Points : 408
    Points
    408
    Par défaut
    Dans ce cas, il est plus que probable que tu ais un caractère "spécial" dans un champs.

    Pour essayer de trouver ca je te propose de faire la requete en spool en faisant d'abord uniquement le premier champs puis le premier et le 2ème, etc...

    Quand tu auras cerné le champs qui pose problème il faut essayer d'analyser sont contenu pour trouver ce caractère spécial.

Discussions similaires

  1. Problème avec spool
    Par riad_09 dans le forum PL/SQL
    Réponses: 3
    Dernier message: 01/09/2009, 14h18
  2. Problème avec le spool
    Par arezki76 dans le forum SQL
    Réponses: 2
    Dernier message: 02/06/2008, 10h59
  3. Problème avec le spooling SNMPc
    Par tariq.tali dans le forum Autres systèmes
    Réponses: 1
    Dernier message: 13/02/2008, 16h20
  4. Problème d'affichage d'erreur avec un spool
    Par hokidoki dans le forum SQL
    Réponses: 0
    Dernier message: 13/11/2007, 10h49
  5. Probléme avec SPOOL !
    Par leo13 dans le forum Oracle
    Réponses: 5
    Dernier message: 26/04/2007, 14h13

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