Avec Oracle Forms,j'ai un boutton qui, quand on clique dessus,
va lire un fichier .txt (avec GET_LINE dans une boucle LOOP pour lire toute les lignes) qui contient des données et va les inserer dans une table temporaire.
Le problème est que lors du clique, le programme va fonctionner indefinnement
(rien ne se passe) et il y'à une petite barre noire tout en-bas qui va et vient.
C'est comme si leprogramme est dans une boucle infini et de plus,qui ne lit pas
les lignes.
voici le code:
DECLARE
LF$FicIN UTL_FILE.FILE_TYPE ;
LC$Dir_in Varchar(30) := 'FICHIERS_IN';
LC$Ligne Varchar2(32767) ;
BEGIN
LF$FicIN := UTL_FILE.FOPEN( LC$Dir_in, 'file.txt', 'R', 32764 ) ;
LOOP
UTL_FILE.GET_LINE( LF$FicIN, LC$Ligne ) ;
Insert into compteur Values (split(LC$Ligne,2,';'),split(LC$Ligne,3,';'),split(LC$Ligne,4,';'),split(LC$Ligne,5,';'),split(LC$Ligne,6,';')) ;
END LOOP;
commit;
END;
Avec la fonction SPLIT, le premier argument la chaîne de caractère (ex: 123-456-789), le deuxième argument la position de la partie souhaitée (ex : 1 donnera 123, 2 donnera 456, et 3 donnera 789), le troisème argument PC$Sep le séparateur.
(cette fonction fonctionne correctement)
Et j'ai déjà fait le FICHIERS_IN avec:
CREATE DIRECTORY FICHIERS_IN AS 'c:\fichiers\in' ;
GRANT READ ON DIRECTORY FICHIERS_IN TO PUBLIC ;
Le fichier file.txt contient des données comme suit:
compteur;1;11;111;1111;demi-tarif
souscompteur;3;1;33;333;plein-tarif
Partager