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

Forms Oracle Discussion :

télécharger un fichier texte


Sujet :

Forms Oracle

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 61
    Points : 36
    Points
    36
    Par défaut télécharger un fichier texte
    Salut,
    (oracle forms 9i)
    J'ai à télécharger un document texte dans une table de ma base alors je veux que la saisie soit à partir de la même ligne avec les valeurs des champs séparés par des virgules comme suit par exemple:
    code,numéro_appel,somme,période
    je dois pouvoir récupérer ces valeurs une par une et les insérer dans la table correspondante dans ma base.
    et l'utilisateur doit pouvoir parcourir son poste pour retrouver le fichier texte correspondant alors il me faut le bouton parcourir.
    Ce que je suis arrivée à faire c'est saisir le nom du fichier dans un item_text et récupérer les informations une à une mais chacune dans une ligne séparée par exemple
    code
    n_appel
    somme
    période
    mais c'est pas trop pratique.
    Voilà le code que j'ai utilisé:
    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
     
    declare 
      in_file   Text_IO.File_Type;
      linebuf1   number;
      linebuf2   number;
      linebuf3  float(126);
      linebuf5  varchar2(60);
       al_button NUMBER; 
      al_button1 NUMBER; 
      filename  VARCHAR2(255);
    BEGIN
       in_file := Text_IO.Fopen(:charger.fich_nom, 'r');
        LOOP  
         Text_IO.Get_Line(in_file, linebuf1);
         Text_IO.Get_Line(in_file, linebuf2);
         Text_IO.Get_Line(in_file, linebuf3);
         Text_IO.Get_Line(in_file, linebuf5);
         if(linebuf1=null) then
          exit;
         end if; 
         DELETE FROM compteur WHERE compteur.code_comp=linebuf1;
         insert into compteur (code_comp,n_appel,consommation_impl,periode) values(linebuf1,linebuf2,linebuf3,linebuf5);
     
        END LOOP;
    EXCEPTION
      WHEN no_data_found THEN
        Text_IO.Put_Line('Closing the file...');
        Text_IO.Fclose(in_file);
        al_button := Show_Alert('confirmation');
        IF al_button = ALERT_BUTTON1 THEN  commit;
        end if;
       --WHEN others then
        -- al_button1:=Show_Alert('alert10');
    END;

  2. #2
    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
    Bonjour,
    Pour éclater votre chaîne en plusieurs éléments, voyez la discussion suivante:
    http://www.developpez.net/forums/showthread.php?t=65198

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 61
    Points : 36
    Points
    36
    Par défaut ouvrir un fichier texte
    (oracle forms9i)
    Les élements de la chaîne sont de types numérique et varchar2.En plus je voudrais insérer ses élemets dans une table.
    Autre question
    comment je peux ouvrir un fichier texte en parcourrant mon poste au lieu d'indiquer son nom (sans utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    n_file := Text_IO.Fopen(:charger.fich_nom, 'r');
    )

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 349
    Points : 409
    Points
    409
    Par défaut
    comment je peux ouvrir un fichier texte en parcourrant mon poste au lieu d'indiquer son nom
    web_util.File_Open_Dialog

    http://www.oracle.com/technology/pro...l/web_util.pdf

    à lire aussi :http://club.developpez.com/regles/#L4.11

    CDLT.

  5. #5
    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
    Citation Envoyé par poula
    Les élements de la chaîne sont de types numérique et varchar2.En plus je voudrais insérer ses élemets dans une table.
    Il y a une question là ?

  6. #6
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 61
    Points : 36
    Points
    36
    Par défaut
    Bonjour
    Après avoir éclater la chaîne en plusieurs éléments comment je pourrais insérer ses éléments dans une table de mon base des donées .
    merci

  7. #7
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 61
    Points : 36
    Points
    36
    Par défaut
    [QUOTE=poula](oracle forms9i)
    Les élements de la chaîne sont de types numérique et varchar2.En plus je voudrais insérer ses élemets dans une table.
    Autre question
    comment je peux ouvrir un fichier texte en parcourrant mon poste au lieu d'indiquer son nom (sans utiliser
    [CODE]n_file := Text_IO.Fopen(:charger.fich_nom, 'r');
    Bonjour
    Comment ouvrir un fichier texte sans utliser webutil ?

  8. #8
    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
    Citation Envoyé par poula
    Bonjour
    Après avoir éclater la chaîne en plusieurs éléments comment je pourrais insérer ses éléments dans une table de mon base des donées .
    merci
    ?? Vous plaisantez ?
    Le code que vous donnez en exemple dans votre question initiale insère les valeurs lues dans une table...

  9. #9
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 61
    Points : 36
    Points
    36
    Par défaut
    salut
    dans le code intiale je suppose que le fichier texte contient des lignes et chaque ligne correspond à un champs dans mon table mais on réalité que une seule ligne contient tous les champs de mon table séparer les un des autres par ','.
    table(code,nom,adresse)
    fichier texte
    code,nom,adresse

  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
    Lorsque vous utilisez la fonction Split(), celle-ci retourne un élément, soit une colonne de la tabl, je présume.
    Déclarez un record du type ligne de table ou vous souhaitez inserer:

    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
    Declare
      LR$Rec EMP%Rowtype ;
    Begin
      ...
      Loop
         LR$Rec.empno = Split(...,1) ;
         LR$Rec.ename = Split(...,2) ;
         ...
         Insert into EMP (...)
         Values(
          LR$Rec.empno,
          LR$Rec.ename,
          ...
      End loop;
    End;

Discussions similaires

  1. [XL-2000] Télécharger un fichier texte et le retraiter en fond de tâche
    Par noftal dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/08/2013, 00h58
  2. Télécharger un fichier texte généré en PHP
    Par seb92500 dans le forum Langage
    Réponses: 4
    Dernier message: 02/10/2008, 19h14
  3. Télécharger un fichier texte et l'importer
    Par NooD dans le forum C++Builder
    Réponses: 5
    Dernier message: 24/07/2006, 11h59
  4. Importer des fichiers textes délimités
    Par Invité dans le forum Outils
    Réponses: 2
    Dernier message: 23/09/2002, 13h56
  5. Instruction pour créer un fichier text ???
    Par Soulsurfer dans le forum Langage
    Réponses: 2
    Dernier message: 06/08/2002, 11h17

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