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 :

Spool pb retour chariot


Sujet :

Sql*Plus Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 4
    Par défaut Spool pb retour chariot
    Bonjour,

    J'ai écrit un script pour pouvoir extraire des données que j'exporte sur le fichier de sortie or le format des données n'est pas au format voulu.

    J'exécute le code suivant (sql*plus version 10.2) :

    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
     
    set pagesize 0
    set feed off
    set heading off
    set linesize 30
    set trimspool off
    set verify off
     
    spool "C:/Data/test_retour.txt"
     
    SELECT ligne1, ligne2
    FROM (
    SELECT RPAD(rownum*2-1,8)|| ';'||
        RPAD('ENG',3)|| ';'|| 
        RPAD('1',2)|| ';'|| 
        RPAD(pop.nom,4)ligne1,
        RPAD((rownum*2),8)|| ';'|| 
        RPAD('ARF',3)|| ';'||
        RPAD((rownum*2)-1,8)|| ';'||
        RPAD(pop.prenom,5)ligne2 
    FROM 
        population pop)
    WHERE ROWNUM <= 100;
    spool off;
    Et voici mon résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    1       ;ENG;1 ;  BU          
    2       ;ARF;1       ;ANNE    
     
    3       ;ENG;1 ; ALA          
    4       ;ARF;3       ;MAIMO   
     
    5       ;ENG;1 ; ALL
    Mon problème vient du fait que j'ai une ligne vide entre mes enregistrements et je n'arrive pas à la supprimer.


    Quelqu'un aurais une idée ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    j'imagine que lors de la sortie, ton enregistrement tient sur plus d'une ligne.

    Ouais, une estimation rapide me dit que tu sors 50 caractères par enregistrements et ton linesize est à 30...

    Essaie d'agrandir ton linesize.

    Et pour faire le test, mets un caractère dans ta requètes en fin de tes enregistrements, histoire de voir jusqu'où tu vas...

    Et quel est l'utilité de ce select imbriqué ?
    Dernière modification par Invité ; 20/08/2008 à 17h04.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 4
    Par défaut
    Effectivement quand j'agrandis mon linesize mes enregistrements apparaissent sans retour chariot.

    Par contre j'ai oublier de préciser, je veux que mes champs apparaissent sur deux lignes différentes, d'où le retour chariot qui me convenait bien avec un linesize a 30. Mais apparemment c'est pas la bonne méthode !

    En fait mes colonnes RPAD(rownum*2-1,8) et RPAD(rownum*2,8) me servent de compteur et je veux le pop.nom sur la première ligne et sur la deuxième ligne le pop.prenom.

  4. #4
    Invité
    Invité(e)
    Par défaut
    et si tu ajoutais un retour chariot dans ton select ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select '-----' || CHR(10) || '-----' from dual ;
    soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT RPAD(rownum*2-1,8)|| ';'||
        RPAD('ENG',3)|| ';'|| 
        RPAD('1',2)|| ';'|| 
        RPAD(pop.nom,4) || CHR(10) || 
        RPAD((rownum*2),8)|| ';'|| 
        RPAD('ARF',3)|| ';'||
        RPAD((rownum*2)-1,8)|| ';'||
        RPAD(pop.prenom,5)
    FROM 
        population pop
    WHERE ROWNUM <= 100;
    Dernière modification par Invité ; 20/08/2008 à 17h36.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 4
    Par défaut
    J'ai essayé mais rien n'y fait. Même en passant le linesize a 50, j'ai toujours une ligne blanche entre mes enregistrements.

    En tout cas merci de bien vouloir m'aider !

    Je me demandais si ça ne pouvais pas provenir de la mise en page des résultats de sql*plus mais je n'ai rien trouvé qui résolve ce problème.
    Juste pour info j'utilise la V10.2 de sql*plus.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 4
    Par défaut
    Problème résolu, cela venait bien des variables d'environnement et notamment celle du separateur d'enregistrements.

    Il a fallu que je rajoute la ligne a mon code.

  7. #7
    Candidat au Club
    Inscrit en
    Décembre 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 3
    Par défaut Problème spool
    Bonjour,

    Je voudrais exécuter un script avec spool directement sur l'interface en ligne de commande dans sql*plus sur oracle. Quand je lance ma ligne de commande (@"\\192.168.204.8\Information system\Billing\MIS\SCRIPTS\004\DAILY_REPORT_4_SQL.SQL")
    voici l'erreur que cela me retourne
    (SP2-0333: Nom de fichier de sortie illÚgal : ""\\192.168.204.8\Information System\Billing\MIS\DATA\ALL\DAILY_BIT_MAP_DATA.TXT" APPEND" caractÞre ÚrronÚ : ' ')
    START_DATE: 03-SEP-2008 09:55:52
    01/09/08,165509
    02/09/08,166025
    pas de mise en file d'attente courante).

    Je voudraisvous préciser que ""\\192.168.204.8\Information System\Billing\MIS\DATA\ALL\DAILY_BIT_MAP_DATA.TXT" APPEND" est le chemin de mon fichier devant recevoir le résultat censé être mis en file d'attente courante.
    Que faire? Je travaille sous windows XP Edition familiale version 2002 service pack 2 en français.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Pourquoi ne pas ouvrir un nouveau fil, ça n'a rien à voir avec ce qui est dit avant.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 19/05/2009, 10h25
  2. Retour chariot
    Par raf_gug dans le forum MFC
    Réponses: 9
    Dernier message: 13/01/2004, 17h54
  3. afficher texte avec retour chariot aprèq requète sql
    Par frenchy371 dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/01/2004, 17h33
  4. retour chariot dans un string
    Par bono dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/12/2003, 12h17
  5. Retour chariot dans un TMemo ?
    Par Vincent PETIT dans le forum C++Builder
    Réponses: 7
    Dernier message: 27/08/2002, 18h55

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