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

PL/SQL Oracle Discussion :

PL/SQL mettre une fin de linge, dans un fichier de sortie


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 176
    Par défaut PL/SQL mettre une fin de linge, dans un fichier de sortie
    oracle 9i,
    bonjour a tous,
    je cherche à crée un fichier en sortie et dans une de ligne (la derniere), je cherche à avoir moins de caractères (dans la ligne :o ).

    le code que j'utilise est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT 	'39'||LPAD(:NbrTotal,6,'0')||RPAD(' ',18,' ')
    FROM 	DUAL;
    mais apres les 18 caractère blancs j'aimerai bien avoir un retour chariot, or vue que ma ligne fais 286, ca va jusqu'a 286, est pour le format du fichier c'est un peut embettant, si quelqu'un à une idée svp, cela serai super, merci

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Par défaut
    Pour le retour chariot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SQL> select 'Oracle'||chr(10)||'DVP' from dual; 
     
    'ORACLE'||
    ----------
    Oracle
    DVP

  3. #3
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 176
    Par défaut
    merci pour ta reponse, j'ai essaye cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT 	'39'||LPAD(:NbrTotalEnreg,6,'0')||RPAD(' ',18,' ')||chr(10)||''
    FROM 	DUAL;
    cela marche (je reedite mon message), mais j'ai fais un mauvais teste, mais, la ligne prend tout de même les 286 caracteres or je veut bien que la ligne se termine, juste apres le enfin si c'est possible

    j'ai essaye d'utiliser UTL_FILE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UTL_FILE.PUT_LINE( :mon_fichier, '39'||LPAD(NbrTotalEnreg,6,'0')||RPAD(' ',18,' ')) ;
    mais il me donne l'erruer :

    SP2-0734: unknown command beginning "UTL_FILE.P..." - rest of line ignored.
    j'ignore s'il faut positionne quelque chose avant d'utilise ce paquetage, comme pour

    pour le DBMS_OUTPUT


  4. #4
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Par défaut
    Tu ne met rien aprés CHR(10) donc cela est normal , mais si tu essaye ainsi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SQL> SELECT    '39'||LPAD('NbrTotalEnreg',6,'0')||RPAD(' ',18,' ')||chr(10)||''||'test' 
      2  FROM    DUAL;
     
    '39'||LPAD('NBRTOTALENREG',6,'0
    -------------------------------
    39NbrTot
    test
    De plus DBMS_OUTPUT et UTL_FILE doivent être dans un bloc PL/SQL

  5. #5
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 176
    Par défaut
    Citation Envoyé par jejam
    merci pour ta reponse, j'ai essaye cela

    cela marche (je reedite mon message), mais j'ai fais un mauvais teste, mais, la ligne prend tout de même les 286 caracteres or je veut bien que la ligne se termine, juste apres le enfin si c'est possible
    j'y suis dans un bloc pl/sql, mais j'arrive pas à voir pourquoi !!!

  6. #6
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Peux-tu nous mettre ton code ? Car vu le message d'erreur (SP2-0734)je doute que tu sois dans un bloc PL...

  7. #7
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Par défaut
    Si c'est dans un fichier spool, tu peux essayer

  8. #8
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 176
    Par défaut
    autant pour moi , je n'etait pas effectivement dans un bloc pl/sql

    mon code :

    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
    32
    33
    34
    SET ECHO        OFF
    SET TERM        OFF
    SET VER         OFF
    SET FEEDBACK    OFF
    SET PAUSE       OFF
    SET PAGESIZE    0
    SET RECSEP      OFF
    SET COLSEP      ""
    SET ARRAYSIZE   286
    SET HEADSEP     OFF
    SET AUTO        OFF
    SET LINESIZE    286
    SET LINES       286
    SET TRIMSPOOL   OFF
    BTITLE          OFF
    TTITLE          OFF
     
    SPOOL &6
      --ECRITURE ENTETE
    SELECT 	'44'||TO_CHAR (SYSDATE,'DDMMYYYY')||chr(10)
    FROM 	DUAL;
     
    SELECT colonne1
    FROM ma_table
    ORDER BY colonne2;
     
      --ECRITURE FIN
    UTL_FILE.PUT_LINE(mon_fic, '39'||LPAD(:NbrTotal,6,'0')||RPAD(' ',18,' ')) ;
     
    /*SELECT 	'39'||LPAD(:NbrTotal,6,'0')||RPAD(' ',18,' ')||chr(10)
    FROM 	DUAL;*/
     
      --Fin Ecriture
    SPOOL OFF
    j'ai essaye
    sans résultat
    mais j'ai essaye de le mettre dans un bloc pl/sql, mais j'ai toujours plusieurs erreurs dans le fichier de sortie. enfin je crois que je vais laisse tombe.

    merci pour tous les gars vous etes super

  9. #9
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Par défaut
    Citation Envoyé par jejam
    autant pour moi , je n'etait pas effectivement dans un bloc pl/sql

    mon code :

    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
    32
    33
    34
    SET ECHO        OFF
    SET TERM        OFF
    SET VER         OFF
    SET FEEDBACK    OFF
    SET PAUSE       OFF
    SET PAGESIZE    0
    SET RECSEP      OFF
    SET COLSEP      ""
    SET ARRAYSIZE   286
    SET HEADSEP     OFF
    SET AUTO        OFF
    SET LINESIZE    286
    SET LINES       286
    SET TRIMSPOOL   OFF
    BTITLE          OFF
    TTITLE          OFF
     
    SPOOL &6
      --ECRITURE ENTETE
    SELECT 	'44'||TO_CHAR (SYSDATE,'DDMMYYYY')||chr(10)
    FROM 	DUAL;
     
    SELECT colonne1
    FROM ma_table
    ORDER BY colonne2;
     
      --ECRITURE FIN
    UTL_FILE.PUT_LINE(mon_fic, '39'||LPAD(:NbrTotal,6,'0')||RPAD(' ',18,' ')) ;
     
    /*SELECT 	'39'||LPAD(:NbrTotal,6,'0')||RPAD(' ',18,' ')||chr(10)
    FROM 	DUAL;*/
     
      --Fin Ecriture
    SPOOL OFF
    j'ai essaye
    sans résultat
    mais j'ai essaye de le mettre dans un bloc pl/sql, mais j'ai toujours plusieurs erreurs dans le fichier de sortie. enfin je crois que je vais laisse tombe.

    merci pour tous les gars vous etes super
    Attention à l'utilisation d'UTL_FILE

  10. #10
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Par défaut
    UTL_FILE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    declare 
     file_handle UTL_FILE.FILE_TYPE; 
    BEGIN 
    	 file_handle := UTL_FILE.FOPEN('/ora/data/HR83BAS/admin','file1.txt','w'); 
           DBMS_OUTPUT.PUT_LINE('Start'); 
        UTL_FILE.PUT_LINE(file_handle,'Bonjour '); 
        UTL_FILE.FCLOSE(file_handle); 
         END;
    /

  11. #11
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Par défaut
    Pour connaitre les répertoires ou tu as le droit de faire un UTL_FILE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    show parameter UTL_FILE

  12. #12
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 176
    Par défaut
    j'avais un grand doute que je ne savait pas comment utilise UTL_FILE, mais la je crois que j e dois tout revoir

    un grand merci a toi Jaouad

    je revoir cette utilisation de plus pres, et si j'ai d'autres questions je reviendrai, merci

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/09/2006, 11h34
  2. Mettre une saut de ligne dans une balise alt
    Par PrinceMaster77 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 16/12/2004, 08h45
  3. [Debutant] Mettre une chaine de caractere dans un tableau
    Par bouboussjunior dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 14/09/2004, 11h33
  4. [C#] Comment mettre une ligne en couleur dans mon DataGrid ?
    Par vandeyy dans le forum Windows Forms
    Réponses: 7
    Dernier message: 19/07/2004, 10h03
  5. Requete SQL permettent une mise a jour dans la base
    Par themagaly dans le forum Bases de données
    Réponses: 2
    Dernier message: 04/06/2004, 09h32

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