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

PL/SQL Oracle Discussion :

Erreur ORA-06502 à résoudre


Sujet :

PL/SQL Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 51
    Points : 69
    Points
    69
    Par défaut Erreur ORA-06502 à résoudre
    Bonjour,

    J'ai un problème pour executer le code suivant :

    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
    35
    36
     
    DECLARE
    p_fich UTL_FILE.FILE_TYPE;
    buffer varchar2 (1000);
    NOMBRE NUMBER;
    LIBEL varchar2(50);
    DATEMAJ varchar2(15);
    BEGIN
     
    p_fich:=UTL_FILE.FOPEN('HOMETMP','data.txt','R');
    NOMBRE:=1;
     
    loop
         begin
                 UTL_FILE.GET_LINE(p_fich,buffer);
                 NOMBRE:=NOMBRE + 1;
                 LIBEL:=SUBSTR(buffer,51,55);
                 DATEMAJ:='07/07/2009';
               exception
                         when no_data_found then exit;
               end;
     
               INSERT INTO MATABLE (ID,LIBELLE,DATEMAJ) VALUES (NOMBRE,LIBEL,DATEMAJ);
     
     
     
     
    end loop;
     
    COMMIT;
     
    UTL_FILE.FCLOSE(p_fich);
     
    END;
     
    /

    J'ai effectué des test et je sais que l'erreur proviens de la ligne suivante:

    LIBEL:=SUBSTR(buffer,51,55);

    J'ai une erreur qui dit :

    ORA-06502 erreur numérique ou erreur sur une valeur: tampon de chaîne de caractères trop petit.


    Si quelqu'un pourrait m'aider cela serait très sympathique.

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de jsd03
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2008
    Messages : 1 221
    Points : 6 506
    Points
    6 506
    Par défaut
    Bonjour,

    tu ne penses pas plutôt que le contenu de ton fichier dépasse 1000 ?

  3. #3
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Libel peut contenir 50 caractères et vous est en train de copier 55.

  4. #4
    Rédacteur
    Avatar de jsd03
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2008
    Messages : 1 221
    Points : 6 506
    Points
    6 506
    Par défaut
    Effectivement donc si tu veux récupérer les 4 caractères suivants, tu devras faire comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LIBEL:=SUBSTR(buffer,51,4);

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 51
    Points : 69
    Points
    69
    Par défaut
    Non car j'y avais pensé. J'ai modifié à plusieurs reprises cette taille mais cela ne change rien.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 51
    Points : 69
    Points
    69
    Par défaut
    Très juste j'avais pas vu mon erreur.

    Merci à vous tous.

  7. #7
    Rédacteur
    Avatar de jsd03
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2008
    Messages : 1 221
    Points : 6 506
    Points
    6 506
    Par défaut
    Pense à mettre en résolu si c'est tout bon

    Bonne continuation.

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

Discussions similaires

  1. Erreur ORA-06502 appel de fonction
    Par nessing dans le forum SQL
    Réponses: 1
    Dernier message: 02/05/2011, 16h25
  2. Erreur ORA 06502 sur fonction
    Par khomar dans le forum Oracle
    Réponses: 2
    Dernier message: 14/12/2010, 17h15
  3. erreur ORA-06502 avec UTL_FILE
    Par leftyy dans le forum PL/SQL
    Réponses: 1
    Dernier message: 03/11/2010, 18h14
  4. Développement PL-SQL : Erreur ORA-06502
    Par sperronn dans le forum PL/SQL
    Réponses: 4
    Dernier message: 04/09/2008, 15h15
  5. erreur ora-06502 dans procédure stockée
    Par zorino dans le forum SQL
    Réponses: 8
    Dernier message: 17/04/2007, 19h53

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