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

SQL Oracle Discussion :

Longueur de champ et erreur.


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 39
    Par défaut Longueur de champ et erreur.
    Bonjour, j'obtient une erreur qui me dit que le champ est trop long lors de l'insertion :




    INSERT INTO TABLE ... etc etc.
    *
    ERREUR a la ligne 1 :
    ORA-12899: valeur trop grande pour la colonne "SCHEMA"."TABLE"."CHAMPLIB"
    (reelle : 33, maximum : 32)
    Le champ en question contient : 'Autres prod. pharm prod. à usa'

    Celui ci fait donc exactement 32 caractéres.

    Et pourtant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    NLS_LENGTH_SEMANTICS
    BYTE
    CHAR
    CHAR
     
    NLS_CHARACTERSET
    AL32UTF8
    Des idées sur la source possible de cette erreur ?

  2. #2
    Membre éclairé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Par défaut
    Moi non plus je ne vois pas exactement où se trouve l'anomalie.
    Tu utilises quel outil pour ta commande insert?
    Donne nous le DESC de ta table et la commande INSERT que tu utilises.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 39
    Par défaut
    VOici le desc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    desc rfontr
     Nom					   NULL ?   Type
     ----------------------------------------- -------- ----------------------------
     RFONTR___RFOREFIDE			   NOT NULL VARCHAR2(32 CHAR)
     RFONTRIDE				   NOT NULL VARCHAR2(32 CHAR)
     RFONTRLIL				   NOT NULL VARCHAR2(100 CHAR)
     RFONTRLIC				   NOT NULL VARCHAR2(32 CHAR)
     RFONTRSEH				   NOT NULL VARCHAR2(2 CHAR)
     RFONTRAIM				   NOT NULL VARCHAR2(1 CHAR)
     RFONTRVRF				   NOT NULL VARCHAR2(1 CHAR)
     RFONTRAOR				   NOT NULL VARCHAR2(32 CHAR)
     RFONTRDTD				   NOT NULL TIMESTAMP(6)
     RFONTRDTF				   NOT NULL TIMESTAMP(6)
     RFONTRTXT					    VARCHAR2(1500 CHAR)
    l'insert ( un des, il foire tous dés qu'il font presque 32 ou 32. pourtant ce sont des insert généré depuis postgresSQL dans une base qui avait les meme script pour deployer la structure de la base, d'ou aucune valeur vraiment au dessus de 32).


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO rfontr (rfontr___rforefide, rfontride, rfontrlil, rfontrlic, rfontrseh, rfontraor, rfontrdtd, rfontrdtf, rfontrtxt, rfontraim, rfontrvrf) VALUES ('HDL', 'E260213', 'Spécialités pharmaceutiques sous ATU', 'Spécialités pharmaceutiques sous', 'ND', 'Noyau', '1811-11-10', '2111-11-11', 'Spécialités pharmaceutiques sous ATU', '1', '1')
    erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    ERREUR a la ligne 1 :
    ORA-12899: valeur trop grande pour la colonne "AXS"."RFONTR"."RFONTRLIC"
    (reelle : 34, maximum : 32)

  4. #4
    Invité
    Invité(e)
    Par défaut
    et si tu met 'Autres prod. pharm prod. a usa' sans accent ?
    Est-ce que ton champ fait 32 CHAR ou 32 BYTES ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 39
    Par défaut
    C'est un fichier de 52go d'insert pour ma base...

    J'aurais du mal a tester comme ca d'enlever un accent a une ligne précise.

    Mais la j'ai rien de mieux a tenter, je vais essayer de faire un sed pour ca.


    sed "s/[éèàîïoâê]/\ /g" histoire de tester. De toute facon c'est juste pour créer une base de donnée de test pour oracle, je m'en fout de la validité réelle des données.

    Mais normalement avec le semantics a CHAR je ne devrais pas avoir ce problème ?

  6. #6
    Membre éclairé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Par défaut
    Citation Envoyé par Jerome_Mtl Voir le message
    et si tu met 'Autres prod. pharm prod. a usa' sans accent ?
    Est-ce que ton champ fait 32 CHAR ou 32 BYTES ?
    Je crois que c'est en bytes, son NLS_CHARACTERSET vaut AL32UTF8
    mais son DESC semble montrer le contraire

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 39
    Par défaut
    Le probléme vient clairement des accents, dans mon second example, deux accent, deux d'ecart entre le réelle et l'attendu, je vais les virer grace a SED, mais bon j'aime pas les soucis non résolu comme ca !

    Pour une fois que je fait pas une erreur trés idiote !

    Ya d'autre NLS qui pourrait rentre en jeu dans ce ce problème ?

    ...

    EDIT : testé sans les accents ca marche. Mais ca n'explique pas pourquoi il m'envoi chier avec les accents

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 39
    Par défaut
    Merci beaucoup pour vos réponses, ca m'aura au moins aider a pouvoir avancer dans mon projet.

    En esperant que quelqun trouve la raison de tout ceci Oo

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/12/2006, 23h19
  2. Erreur lors de changement de longueur de champs
    Par Bouillon dans le forum Bases de données
    Réponses: 2
    Dernier message: 09/10/2006, 10h17
  3. DBMemo sur champ Text erreur insert
    Par htristra dans le forum C++Builder
    Réponses: 1
    Dernier message: 02/11/2005, 16h17
  4. PROBLEME avec limitation de longueur de champ...
    Par zarbydigital dans le forum Bases de données
    Réponses: 10
    Dernier message: 05/10/2005, 12h02
  5. longueur des champs de ma base de données
    Par mictif dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 24/06/2005, 20h19

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