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 :

creation de fichier txt en pl/sql


Sujet :

PL/SQL Oracle

  1. #1
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 176
    Points : 126
    Points
    126
    Par défaut creation de fichier txt en pl/sql
    oracle 9.2 , pl/sql developer
    Bonjour a tous,

    se que je voulais savoir, j'ai une table, (super )

    en sortie je veux obtenir plusieurs fichiers (formatés , txt ou autre extension peut m'importe), avant je n'avait besoin en sortie qu'un seul fichier (donc je le passe en parametre pour mon spool)

    or maintenant je ne sait pas combien de fichier j'aurai en sortie (apres traitement, si) donc pas de passage en parametre X fichier

    je voulais savoir si, deja il y a moyen de cree un fichier, en pl/sql ou pas, et si oui comment

    merci

  2. #2
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Points : 436
    Points
    436
    Par défaut Re: creation de fichier txt en pl/sql
    Citation Envoyé par jejam

    je voulais savoir si, deja il y a moyen de cree un fichier, en pl/sql ou pas, et si oui comment

    merci
    Bonjour jejam,

    En pl/sql, tu peux créé des fichiers avec le package UTL_FILE

    @
    PpPool

  3. #3
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 176
    Points : 126
    Points
    126
    Par défaut
    merci bcp PpPool
    Sinon pas d'autres suggestions

  4. #4
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    En PL/SQL il n'y a pas 36 moyens de créer des fichiers.

    http://sheikyerbouti.developpez.com/pl_sql/?page=Chap8
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  5. #5
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 176
    Points : 126
    Points
    126
    Par défaut
    ok merci, autant pour moi

  6. #6
    Futur Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Je profite de ce post
    pour poser une question concernant l'écriture d'un fichier depuis un script pl/sql.

    Voila, j'ai vu qu'on pouvait utiliser le package UTL_FILE pour ouvrir, lire et écrire dans les fichiers. Mais les fonctions de ce package s'exécutent coté Serveur. Or je veux écrire les fichiers coté client.

    J'ai vu qu'il y avait la solution Spool. Aurait-il une autre solution.

    De plus, je voudrais savoir si le spool peut etre utilisé dans une procédure?
    Je voudrais également savoir si dans la procédure, on doit faire un DBMS_OUTPUT.PUT_LINE("Entete") pour que ca s'écrive par la suite dans le fichier spécifié avec le spool?

    Merci de vos réponses


  7. #7
    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
    Points : 3 798
    Points
    3 798
    Par défaut
    Si tu veux gérer une sortie coté client il te faut gérer cela avec le SPOOL ,
    Tu spécifier le fichier avant d'entrer dans le PL/SQL puis tu gére les sortie avec le package DBMS_OUTPUT.

    N'oublie pas d'activer le serveroutput

    Jaouad

  8. #8
    Futur Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    D'accord

    Merci d'avoir été aussi rapide.

    J'en profite encore... Lorsque le résultat est une requête, est ce que le formatage se fait automatiquement ou je dois gérer moi même le formatage?

    Et aussi est-ce que DBMS_OUTPUT.PUT_LINE peut contenir le résultat d'un requete SQL et non un String comme prévu?

    Ah oui, surement la dernière question. Dans le fichier généré par le spool, j'ai les lignes commencant par SQL > exec nom_procédure et à la fin SQL > spool off
    Et je veux les enlever du fichier ou je ne veux pas que ces lignes commencant par SQL> s'écrivent dans le fichier

    J'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    set head off
    set feedback off
    set pages 0
    set echo off
    et enfin set verify off
    mais ca ne marche pas.

    Merci bcq de votre aide

  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
    Points : 3 798
    Points
    3 798
    Par défaut
    Citation Envoyé par PhaseCreative
    <D'accord

    Merci d'avoir été aussi rapide.

    J'en profite encore... Lorsque le résultat est une requête, est ce que le formatage se fait automatiquement ou je dois gérer moi même le formatage?
    Tu dois toi même gérer le formattage

    Citation Envoyé par PhaseCreative

    Et aussi est-ce que DBMS_OUTPUT.PUT_LINE peut contenir le résultat d'un requete SQL et non un String comme prévu?
    Il peut contenir également la valeur d'une variable
    voila un exemple trés simpliste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SQL> set serveroutput on 
    SQL> declare 
      2  dvp varchar2(20) ; 
      3  begin 
      4   select sysdate into dvp from dual;
      5   dbms_output.put_line ( ' nous sommes le '|| dvp ) ; 
      6   end ; 
      7   
      8  /
    nous sommes le 29/12/05
     
    Procédure PL/SQL terminée avec succès.
    Citation Envoyé par PhaseCreative


    Ah oui, surement la dernière question. Dans le fichier généré par le spool, j'ai les lignes commencant par SQL > exec nom_procédure et à la fin SQL > spool off
    Et je veux les enlever du fichier ou je ne veux pas que ces lignes commencant par SQL> s'écrivent dans le fichier

    J'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    set head off
    set feedback off
    set pages 0
    set echo off
    et enfin set verify off
    mais ca ne marche pas.

    Merci bcq de votre aide
    Il te suffit de mettre ton code dans un fichier et de l'appeller via la commande start ou @

    Bon courage

  10. #10
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Attention toute de même aux limitations de DBMS_OUTPUT. Avant la 10gR2, les lignes sont limitées à 255 caractères !
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  11. #11
    Futur Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Merci
    Pour régler le problème des 255 caractères, j'ai utilisé une table intermédiaire! Merci pour l'info

  12. #12
    Futur Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Encore une question
    toujours avec l'utilisation du SPOOL.

    Sachant que la commande SPOOL doit être utilisée en dehors des procédures, je voudrais savoir comment gérer le spool dans le cas suivant :

    j'ai plusieurs script sql qui écrivent dans des fichiers différents. Les fichiers sont ouverts en début de processus et sont fermés à la fin. Donc comment gérer les spools et comment on peut spécifier dans le script pour écrire dans un fichier bien précis?

    En gros, lors de mes procédures, je dois écrire dans des fichiers pour avoir la liste des anomalies.

    Merci encore de votre aide

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 9
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par PhaseCreative Voir le message
    toujours avec l'utilisation du SPOOL.

    Sachant que la commande SPOOL doit être utilisée en dehors des procédures, je voudrais savoir comment gérer le spool dans le cas suivant :

    j'ai plusieurs script sql qui écrivent dans des fichiers différents. Les fichiers sont ouverts en début de processus et sont fermés à la fin. Donc comment gérer les spools et comment on peut spécifier dans le script pour écrire dans un fichier bien précis?

    En gros, lors de mes procédures, je dois écrire dans des fichiers pour avoir la liste des anomalies.

    Merci encore de votre aide
    J'ai un peu la meme problématique à savoir que je voudrais écrire coté client dans 2 fichiers de spools différents au cours d'une exécution sans la limitation de 255 caractères.

    J'ai bien tenter d'utiliser le package UTL_FILE mais le fichier est créé automatiquement sur le serveur de données ce qui ne convient pas de mon cas.

    Peut-on paramétrer l'UTL_FILE pour écrire sur le client ?
    Peut-on spooler dans deux fichiers distincts ?
    Comment peut-on contourner le probleme de la limitation a 255 carac du DBMS_OUTPUT en écrivant coté client ?

    Un grand merci par avance pour vos réponses à ces questions.

  14. #14
    Membre régulier
    Homme Profil pro
    Analyste
    Inscrit en
    Août 2003
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste
    Secteur : Services de proximité

    Informations forums :
    Inscription : Août 2003
    Messages : 85
    Points : 87
    Points
    87
    Par défaut
    Bonjour,

    Pour la limitation à 255, il faut faire des retours chariot avec :

    DBMS_OUTPUT.NEW_LINE ;
    ou
    CHR(13)

    Par contre, au bout d'un moment mon fichier spool est trop long et me coupe mon résultat.
    Savez-vous comment le gérer ? scinder en plusieurs fichiers ?
    (même problématique, on me force à passer par un spool et pas par un UTL_FILE)

    Excellente journée à tous.
    Cordialement,
    Air startout
    Air startout

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Novembre 2008
    Messages : 46
    Points : 60
    Points
    60
    Par défaut
    Bonjour,

    Le probleme de SPOOL incomplet peut etre due au logiciel que vous utilisez.
    J'ai plusieurs fois fais l'experience d'un spool incomplet en utilisant une COMMAND WINDOW dans pl/sql developer.

    Executer le script a partir d'une fenetre SQLplus classique ou alors trouvez l'options de pl/sql developer qui remedie au probleme (perso j'ai jamais eu la force de chercher )

    J'espere que ca en aidera quelques uns.

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

Discussions similaires

  1. copie d´un fichier txt vers MS SQL Server
    Par makohsarah dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 02/10/2010, 17h26
  2. Ouvrir et écrire dans un fichier .txt en T-SQL
    Par joul's dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 27/10/2008, 21h04
  3. Gestion de fichiers.txt en Transact-SQL
    Par ShaGaTsoin dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 16/09/2007, 21h29
  4. [VBA-E] Creation de fichiers Txt à partir de xls
    Par anisr dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/02/2007, 13h28
  5. import fichier Txt avec du SQL
    Par bouba_95 dans le forum Access
    Réponses: 1
    Dernier message: 19/01/2007, 21h44

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