Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Outils > Forms
Forms Forum d'entraide sur Oracle Forms
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/01/2007, 20h29   #1
Invité régulier
 
Inscription : novembre 2006
Messages : 61
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 61
Points : 6
Points : 6
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 :
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;
poula est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2007, 07h58   #2
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 533
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 533
Points : 6 469
Points : 6 469
Bonjour,
Pour éclater votre chaîne en plusieurs éléments, voyez la discussion suivante:
http://www.developpez.net/forums/d65198/bases-donnees/oracle/pl-sql/pl-sql-8i-decoupage-chaine-caracteres/
__________________
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
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2007, 15h25   #3
Invité régulier
 
Inscription : novembre 2006
Messages : 61
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 61
Points : 6
Points : 6
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 :
n_file := Text_IO.Fopen(:charger.fich_nom, 'r');
)
poula est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2007, 18h33   #4
Membre éclairé
 
Inscription : 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 : 367
Points : 367
Citation:
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.
taska est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2007, 20h50   #5
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 533
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 533
Points : 6 469
Points : 6 469
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à ?
__________________
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
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2007, 10h17   #6
Invité régulier
 
Inscription : novembre 2006
Messages : 61
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 61
Points : 6
Points : 6
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
poula est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2007, 10h20   #7
Invité régulier
 
Inscription : novembre 2006
Messages : 61
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 61
Points : 6
Points : 6
[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 ?
poula est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2007, 10h22   #8
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 533
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 533
Points : 6 469
Points : 6 469
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...
__________________
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
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2007, 10h42   #9
Invité régulier
 
Inscription : novembre 2006
Messages : 61
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 61
Points : 6
Points : 6
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
poula est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2007, 10h50   #10
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 533
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 533
Points : 6 469
Points : 6 469
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 :
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;
__________________
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
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h00.


 
 
 
 
Partenaires

Hébergement Web