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 :

VARCHAR2(2000) pour tous les champs ?


Sujet :

Oracle

  1. #1
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Points : 318
    Points
    318
    Par défaut VARCHAR2(2000) pour tous les champs ?
    Bonjour,

    Dans le cas où on ne connait pas à l'avance la taille maximale que pourront atteindre les champs de type chaine dans une table, quels seraient les inconvénients de les déclarer comme VARCHAR2(2000) ?

    J'ai cherché sur le forum des réponses, mais personne ne semble avoir été dans ce cas (ce qui peut être un signe...).

    Merci d'avance pour vos éclaircissements.

    Julien

  2. #2
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Bonjour

    Quelles sont les éventuelles conséquences négatives si je surdimensionne mes colonnes systématiquement ?
    Au niveau stockage, pas de souci, le VARCHAR2 n'occupe que l'espace réellement utile.
    C'est plutôt à un gaspillage de mémoire que vous vous exposez.

    D'une part sur le serveur Oracle lui-même, lorsque vous déclarerez des variables PL/SQL sous la forme TABLE.COLONNE%TYPE. Car si votre champ est déclaré en VARCHAR2(2000), la variable fera de même. Si d'aventure vous utilisez des collections, ce gaspillage peut être considérable.

    D'autre part au niveau de votre code C, Java, etc, où il faudra aussi que vos variables hôtes soit capables de stocker le contenu potentiel d'un VARCHAR2(2000).

    Il faut donc indiquer pour chaque champ la longueur maximale des données qu'il est susceptible d'accueillir, mais pas davantage.
    Si vous n'avez pas cette information, il y a des chances que le besoin soit mal défini, et il faut commencer par là.
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  3. #3
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Points : 318
    Points
    318
    Par défaut
    Bonjour,

    La base est effectivement manipulée par un programme Java. Les champs seront donc stockés dans des variables de type String, qui se dimensionnent dynamiquement par rapport à la valeur qui leur est affectée.

    Il semblerait donc qu'il n'y ait aucune contre-indication "majeure" à une telle déclaration.

    Merci pour cette réponse rapide et précise !

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

Discussions similaires

  1. GROUP BY mais pas pour tous les champs
    Par Minim0i dans le forum DB2
    Réponses: 25
    Dernier message: 25/10/2013, 10h15
  2. [XL-2010] Envoi mail par excel avec boucle pour tous les champs
    Par jul2012 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/11/2012, 14h54
  3. [AC-2007] Cadre dépendant/ mais l'image se répéte pour tous les champs
    Par laure2788 dans le forum IHM
    Réponses: 2
    Dernier message: 16/06/2011, 11h02
  4. [1.x] Comment activer le trim pour tous les champs
    Par lr dans le forum Symfony
    Réponses: 4
    Dernier message: 21/01/2010, 12h42
  5. [Rave 6 BE]Valeur "Invalid" pour tous les champs !
    Par Giovanny Temgoua dans le forum Rave
    Réponses: 4
    Dernier message: 19/10/2006, 22h29

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