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 :

[FORMS][6i] Erreur non explicitée


Sujet :

Forms Oracle

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 15
    Points : 6
    Points
    6
    Par défaut [FORMS][6i] Erreur non explicitée
    Salut a tous,

    J'ai le message suivant :
    FRM-40735:le declencheur WHEN-BUTTON-PRESSED
    a detecte une exception ORA-06502 non traitee.
    Le message survient lorsque j'excute une form et que je clic sur un boutton pour executer le code suivent :

    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
    PROCEDURE test IS
    BEGIN
    declare
    	mat varchar2(7);
    	mt number;
    	date_jour1 date;
    	in_file Text_IO.File_Type;
    	tampligne  VARCHAR2 (80);
      begin
     
          in_file:=Text_IO.Fopen('c:\vers_syspai\precompte.txt','r');
          loop
             Text_IO.Get_Line(in_file,tampligne);
     
             if tampligne is null then
                exit;
             else
                mat:= recherche(tampligne,1,';');
                mt:=recherche(tampligne,2,';');
                date_jour1:=recherche(tampligne,3,';');
                insert into fichier_precompte(MATRICULE_PARTICIPANT,MONTANT_PRECOMPTE,DATE_PRECOMPTE)
         	values (mat,mt,date_jour1);
             end if;      				 
          end loop;
        EXCEPTION
        WHEN no_data_found THEN
           	Text_IO.Fclose(in_file);
        when too_many_rows then 
                message('plusieurs enregistrements');    	
        commit;
     end;
    END;
    A mon avis le message survient apres l'instruction : Text_IO..Get_Line...
    Que peut vouloir signifier ce message?

  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
    Etes-vous sûr que la variable templigne (varchar2(80)) est suffisament dimentionnée ? pas de lignes de plus de 80 caractères dans votre fichier ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    la ligne de mon fichier compte exactement 21 caracteres. J'ai mis volontairement templigne a 80.

  4. #4
    Membre actif Avatar de Nounoursonne
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 264
    Points : 208
    Points
    208
    Par défaut
    peux t'on avoir le details de la fonction recherche ()

  5. #5
    Futur Membre du Club
    Inscrit en
    Août 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    Voila le code de la fonction recherche :

    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
    FUNCTION Recherche (PC$Chaine in varchar2,PN$Pos in PLS_INTEGER,
    PC$Sep in varchar2 default ';') RETURN varchar2 IS
    LC$Chaine varchar2(32767):=PC$Sep||PC$Chaine;
    LI$I PLS_INTEGER;
    LI$I2 PLS_INTEGER;
    BEGIN
      LI$I:= INSTR(LC$Chaine,PC$Sep,1,PN$Pos);
      message ('extraction',LI$I);
      If LI$I > 0 then
      	 LI$I2:=INSTR(LC$Chaine,PC$Sep,1,PN$Pos+1);
      	 message ('extraction',LI$I2);
      	 If LI$I2 = 0 then
      	 	  LI$I2:=LENGTH(LC$Chaine)+1;
      	 End if;
         Return(SUBSTR(LC$Chaine,LI$I+1,LI$I2-LI$I-1));
         message ('extraction',LC$Chaine);
      else   
         Return Null;
      End if;   	 	
    END;

  6. #6
    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
    Probablement un problème de conversion, peut-être votre variable mt de type number.

    Afficher chaque valeur retournée par votre fonction recherche()
    Vous verrez vite d'où vient le problème.

  7. #7
    Futur Membre du Club
    Inscrit en
    Août 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    j'ai essaye avec la fonction suivante, mais j'obtiens le meme message :

    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
    PROCEDURE testons IS
    BEGIN
    	declare
    	mat varchar2(7);
    	mt number;
    	jour1 varchar2(9);
    	begin
         mat:= recherche('100/A;18500;09-MAI-05',1,';');
         message('premiere valeur',mat);
         mt:=recherche('100/A;18500;09-MAI-05',2,';');
         message('deuxieme valeur',mt);
         jour1:=recherche('100/A;18500;09-MAI-05',3,';');
         message('troisieme valeur',jour1);
      end;    		
    END;

  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
    Le code est correct
    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
    Connecté à :
    Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production
    With the Partitioning, OLAP and Oracle Data Mining options
    JServer Release 9.2.0.5.0 - Production
     
    SQL> set serveroutput on
    SQL> DECLARE 
      2    mat VARCHAR2(7); 
      3    mt NUMBER; 
      4    jour1 VARCHAR2(9); 
      5  BEGIN 
      6    mat:= Split('100/A;18500;09-MAI-05',1,';'); 
      7    dbms_output.put_line(mat); 
      8    mt:=Split('100/A;18500;09-MAI-05',2,';'); 
      9    dbms_output.put_line(mt); 
     10    jour1:=Split('100/A;18500;09-MAI-05',3,';'); 
     11    dbms_output.put_line(jour1); 
     12  END; 
     13  /
    100/A
    18500
    09-MAI-05
     
    Procédure PL/SQL terminée avec succès.
     
    SQL>
    A un moment ou un autre, vous devez avoir une valeur en dépassement de capacité dans mat ou mt ou jour1.

  9. #9
    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
    Points : 3 609
    Points
    3 609
    Par défaut
    N'est-ce pas la fonction recherche qui pose problème ?

  10. #10
    Futur Membre du Club
    Inscrit en
    Août 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    c'est bien possible.
    D'autre part je soupconne aussi la fonction test au niveau de l'instruction Text_IO.Get_File...

  11. #11
    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
    Je persiste à croire que le fichier plat (les lignes) contient des valeurs soit trop longues pour la/les variables de réception, soit un nombre réel qui dépasse la capacité de la variable NUMBER()

  12. #12
    Futur Membre du Club
    Inscrit en
    Août 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    voila ci-dessous le contenu reel de mon fichier qui est un fichier juste de teste et qui reflete exactement le contenu du fichier qui sera exploite:

    100/A;18500;09-MAI-05
    200/B;14000;09-MAI-05
    300/C;25000;09-MAI-05
    400/S;12000;09-MAI-05
    600/E;12000;09-MAI-05
    100/A;18500;12-MAI-05
    200/B;14000;12-MAI-05
    300/C;25000;12-MAI-05
    400/S;12000;12-MAI-05
    600/E;12000;12-MAI-05

    vous voyez bien...

  13. #13
    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
    C'est effectivement très bizarre !!!

    savez-vous sur quelle ligne vous tombez en erreur ?

  14. #14
    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
    Ne serait-ce pas tout simplement le format date qui ne correspond pas à celui attendu...

    et si vous essayez :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    date_jour1 := To_date(recherche(tampligne,3,';') ,'DD-MONTH-YY' );
    :

  15. #15
    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
    Points : 3 609
    Points
    3 609
    Par défaut
    Pour être sûr que cela ne vient de text_io.get_line, déclare ta variable en varchar2(1000)

    Mais je suis convaincu que cela ne vient pas de là, puisque tu as la même erreur dans testons et tu ne fais de text_io.get_line

    Que se passe-t-il si tu déclares toutes tes variables qui réceptionnent le résultat de recherche en varchar2(100) par exemple ?

  16. #16
    Futur Membre du Club
    Inscrit en
    Août 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    Merci beaucoup a tous, ca passe correctement maintenant.
    C'est tres gentil...

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

Discussions similaires

  1. [1.x] Form incomplet - message d'erreur non présent
    Par Laurent001 dans le forum Débuter
    Réponses: 0
    Dernier message: 19/08/2012, 21h11
  2. [JNDI] Erreur non explicite lors de l'ajout d'une entrée dans l'AD
    Par elias dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 08/07/2011, 21h48
  3. Réponses: 4
    Dernier message: 19/04/2007, 07h32
  4. Erreur non spécifiée... plus de form
    Par directs dans le forum EDI
    Réponses: 5
    Dernier message: 26/01/2006, 09h31
  5. [wsdl] Erreur non explicite
    Par TobyKaos dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 09/12/2005, 09h54

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