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

Oracle Discussion :

Erreur 6502 : incohérence ?


Sujet :

Oracle

  1. #1
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 194
    Points : 102
    Points
    102
    Par défaut Erreur 6502 : incohérence ?
    Bonjour,

    lors d'une procédure oracle, je dois faire une insertion mais, au bout de quelques enregistremnts, j'obtiens cette erreur :
    Erreur -6502 rencontree : ORA-06502: PL/SQL : erreur numérique ou erreur sur une valeur: prÚcision de NUMBER trop élevée
    Vu que certains inserts fonctionnent, je les affiche, le dernier étant celui qui est problématique :

    20050301924 | 33 | 1001 | 2259,7 | 2259,7 | 0 |

    20050301924 | 34 | 1045 | 151,67 | 0 | 0 | E

    20050301924 | 35 | 1046 | 151,67 | 0 | 0 | E

    20050301924 | 36 | 1227 | 69,19 | 0 | 0 | M

    20050301924 | 37 | 1233 | 150 | ,63 | 0 | M

    20050301924 | 38 | 1310 | 2783,23 | 0 | 0 | M
    mais, au regard de la description de la table, il ne devrait pas y avoir de problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    NUMBSA                                    NOT NULL NUMBER(11)
    NUMENR                                    NOT NULL NUMBER(10)
    CODELTBRT                                 NOT NULL VARCHAR2(6)
    MNTELTBRTMOI                                       NUMBER(10,2)
    BASELTBRTMOI                                       NUMBER(10,2)
    PCTELTBRTMOI                                       NUMBER(5,4)
    NBRELTBRTMOI                                       NUMBER(10,2)
    CODTYPRAP                                          CHAR(1)
    où est le problème ?

    Merci

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    n'y aurait-il pas un trigger ?

  3. #3
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Points : 848
    Points
    848
    Par défaut
    Ce que je trouves bizarre c'est qu'au niveau de ta table il y a 8 colonnes et pas 7 comme dans les données...


    Laly.
    In the heart of the truly greats, perfection is never achieved but endlessly pursued.

    Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...)

  4. #4
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 194
    Points : 102
    Points
    102
    Par défaut
    Excusez moi ; mes tests étaient mauvais ; l'erreur est ailleurs ;

    voici donc ma nouvelle analyse du problème :

    dans ma procédure, j'ai deux curseurs et je fais ceci :


    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
     
    OPEN curseur1;
      loop
       fetch curseur1 into.......
      Exit when curseur1%NOTFOUND;
      .............traitement divers
      OPEN curseur2;
      fetch curseur2 into...
      EXIT curseur2 WHEN....
      .................................traitements divers
      dbms_output.put_line('petite fin');
      END LOOP;
      CLOSE curseur2;
      dbms_output.put_line('FINNNNNNNNNNNN');
    END LOOP;
    CLOSE curseur1;
    A priori, le problème se trouve dans le principe de ces deux curseurs imbriqués car je vois le petite fin s'afficher mais jamais le gros FINNNNNNN...

    Cela vous inspirerait il ?
    [/code]

  5. #5
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Citation Envoyé par szdavid
    Cela vous inspirerait il ?
    Vu que si il y a une erreur dans le code c'est dans la partie supprimé on risque pas de trouver

    En plus, en cherchant un peu je suis sûr que trouveras l'erreur tout seul, le débuggage n'étant pas un des objectifs du forum

  6. #6
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 194
    Points : 102
    Points
    102
    Par défaut
    mais juste pour information : imbriquer les curseurs ne pose pas de problème ? C'est bien autorisé, sans problème ?

  7. #7
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    non, aucun probléme

    T'as pas un end loop en trop ?

  8. #8
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 194
    Points : 102
    Points
    102
    Par défaut
    non, non, de ce coté, c'est bon ; merci, je continue mes recherches...

  9. #9
    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 szdavid
    mais juste pour information : imbriquer les curseurs ne pose pas de problème ? C'est bien autorisé, sans problème ?
    Oui, sauf que votre construction me parait bizarre. je vois 2 instructino LOOP et une seule END LOOP...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Open cur1
    Loop
       Fetch cur1 into...
       Exit when ...
       Open cur2
       Loop
         Fetch cur2 into ...
         Exit when ...
       End loop ;
    End loop;
    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

  10. #10
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 194
    Points : 102
    Points
    102
    Par défaut
    non, non, j'ai bel et bien deux endloop ; le premier se trouvant avant le "close curseur2" et le second à la fin

  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
    mille excsuses,c'est le contraire. 1 LOOP, 2 END LOOP.
    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

  12. #12
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 194
    Points : 102
    Points
    102
    Par défaut
    en fait, c'est une erreur de ma part ; en recopiant le code, je ne l'ai pas recopié en intégralité (beaucoup de select,... ) et j'ai supprimé le loop par inadvertance ;

    Désolé

  13. #13
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 194
    Points : 102
    Points
    102
    Par défaut Number(4) --> Number (5,4)
    Bonjour,

    avec moults tests, j'ai détécté précisément une erreur et je n'arrive pas à la comprendre ;

    je dois exporter une valeur d'une table vers une autre.

    Colonne source du type : number(4)
    Colonne cible : number (5,4)

    Pour quelques valeurs, cela fonctionne mais un problème se pose assez vite.

    Comme variable d'échange, j'ai un simple var number
    (j'ai également essayé var number(5,4) sans plus de succès)

    j'ai effectué un select...into.... classique puis un insert et là, ça bloque et j'obtiens l'erreur :

    lErreur -1438 rencontree : ORA-01438: valeur incohÚrente avec la prÚcision
    indiquÚe pour cette colonne
    ORA-02063: prÚcÚdant line de MCKPH3



    Comment résoudre ce souci ?

    Merci

  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
    NUMBER(5,4) veut dire 5 chiffres DONT 4 décimales au dela de 9 cela va forcément générer une erreur.
    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

  15. #15
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    on va continuer ici hein

    Merci de penser aux balises code à l'avenir

    PS : moi-aussi j'ai toujour trouver illogique le DONT au lieu du ET... m'enfin

  16. #16
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 194
    Points : 102
    Points
    102
    Par défaut
    n'y a t il aucun moyen de contourner cela ?

  17. #17
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    ALTER TABLE ... NUMBER (9,4)

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

Discussions similaires

  1. [AC-2007] en impression pdf, erreur 3615 incohérence de type dans une expression
    Par tibofo dans le forum VBA Access
    Réponses: 2
    Dernier message: 08/10/2010, 17h20
  2. Aide sur une erreur d'incohérence
    Par Simonake dans le forum C#
    Réponses: 1
    Dernier message: 06/04/2010, 12h12
  3. Message d'erreur incohérent
    Par markfish55 dans le forum C++
    Réponses: 0
    Dernier message: 11/05/2008, 22h19
  4. [access 2003][Requete] Erreur : Incohérence avec le type d'expression
    Par Milyshyn76 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 15/02/2008, 12h23
  5. Erreur ORA-00932 types de données incohérents
    Par paradeofphp dans le forum Oracle
    Réponses: 7
    Dernier message: 21/05/2007, 10h56

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