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

  1. #1
    Nouveau membre du Club
    Inscrit en
    décembre 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : décembre 2007
    Messages : 38
    Points : 29
    Points
    29

    Par défaut migration et data type

    Bonjour à tous,

    je vais bientôt migrer une base donnée vers une nouvelle base déjà créée. Pour me préparer à cette migration, j'ai regarder les modèles de chacunes des bases et j'ai remarqué que pour certain champs, je vais devoir placer des type varchar 8000 à varchar 4000.
    Exemple:
    actuellement, mon champs "objectif" est de type varchar(8000). Dans la nouvelle base de donnée, le champs correspondant a été déclaré comme étant de type varchar(4000).
    J'imagine donc que je vais avoir un problème de longueur. Mais est-ce que j'aurai un problème si le contenu de mon champs fais moins de 4000 caractères ? Quel serai la solution pour couper automatiquement mes valeurs si elles sont >4000.
    Aussi, un de mes champs de type int(4) va être transféré dans un type varchar(2). Est-ce possible ou va-t-il falloir faire une transformation ?

    Merci d'avance

  2. #2
    Modérateur
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    16 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2006
    Messages : 16 150
    Points : 32 112
    Points
    32 112
    Billets dans le blog
    10

    Par défaut

    Quel SGBD permet un VARCHAR(8000) ? Ou même 4000 ?

    Les objectifs sont-ils si détaillés qu'ils nécessitent une colonne aussi grosse ?

    Pour savoir si les données actuelles rentreront dans la nouvelle colonne, faire la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT MAX(LENGTH(objectif))
    FROM la_table
    Si le résultat est inférieur à 4000, c'est bon.
    Si le résultat est très inférieur à 4000, il faudrait songer à baisser encore cette capacité.
    Si le résultat est supérieur à 4000, il faut augmenter cette nouvelle capacité.

    Aussi, un de mes champs de type int(4) va être transféré dans un type varchar(2). Est-ce possible ou va-t-il falloir faire une transformation ?
    Quelle est la raison de ce changement de type ?
    Que contient cette colonne ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Nouveau membre du Club
    Inscrit en
    décembre 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : décembre 2007
    Messages : 38
    Points : 29
    Points
    29

    Par défaut

    Je ne sais pas quel SGBD est utilisé, pour l'instant je n'ai pu récupérer que les modèles de ces bases et malheureusement, je ne suis pas autorisée à les modifier.
    Pour ce qui est du passage du type int à varchar, je ne sais pas pourquoi ça a été décidé ainsi puisque c'est sur un champs id et qu'il s'agit tjs d'un entier.

    Merci pour cette réponse rapide en tout cas !

  4. #4
    Modérateur
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    16 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2006
    Messages : 16 150
    Points : 32 112
    Points
    32 112
    Billets dans le blog
    10

    Par défaut

    Citation Envoyé par lolilola Voir le message
    je ne suis pas autorisée à les modifier.
    C'est bien dommage parce que ce qui suit est une très mauvaise idée !
    Pour ce qui est du passage du type int à varchar, je ne sais pas pourquoi ça a été décidé ainsi puisque c'est sur un champs id et qu'il s'agit tjs d'un entier.
    Il vaudrait mieux, si ce type existe dans le SGBD, utiliser un TINYINT, codé sur 1 seul octet alors que le VARCHAR(2) est codé sur 3 octets, qui peut stocker des entiers signés jusqu'à +127.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Nouveau membre du Club
    Inscrit en
    décembre 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : décembre 2007
    Messages : 38
    Points : 29
    Points
    29

    Par défaut

    Ok, merci beaucoup pour ton aide. Je vais voir avec mon supérieur si on peut modifier le type de l'id en question, ça m'éviteras bien des soucis.
    Encore merci

  6. #6
    Modérateur
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    16 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2006
    Messages : 16 150
    Points : 32 112
    Points
    32 112
    Billets dans le blog
    10

    Par défaut

    Tant que tu y es, parle lui aussi des VARCHAR(4000) qui sont énormes, voire transformés en type TEXT si c'est du MySQL :
    [NATIONAL] VARCHAR(M) [BINARY] Une chaîne de taille dynamique. M représente la taille maximale de la valeur dans une colonne. L'intervalle de M va de 0 à 255 caractères (1 à 255 avant MySQL 4.0.2).
    Note : les espaces terminaux sont supprimées lorsque la valeur est stockée (cela diffère des spécifications de SQL-99).
    Depuis la version 4.1.0, si la valeur M est supérieure à 255, Une colonne de type TEXT est créée. Ceci est une fonctionnalité de compatibilité. Par exemple une colonne VARCHAR(500) est convertie en TEXT, et VARCHAR(200000) est convertie en MEDIUMTEXT. Attention, cette conversion affecte la suppression des espaces finaux...
    VARCHAR est un raccourci pour CHARACTER VARYING.
    S'il résiste et si tu as besoin d'arguments, n'hésite pas à venir demander de l'aide !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

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

Discussions similaires

  1. [MIGRATION] champ de type "case à cocher"
    Par The_Nail dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 10/05/2011, 11h07
  2. [People Soft] Extraction "Long raw data type"
    Par argyronet dans le forum Oracle
    Réponses: 2
    Dernier message: 13/09/2005, 22h18
  3. erreur Data type mismatch in criteria expression
    Par bachilbouzouk dans le forum ASP
    Réponses: 3
    Dernier message: 20/04/2005, 11h48
  4. datetime data type resulted in an out-of-range
    Par faamugol dans le forum ASP
    Réponses: 2
    Dernier message: 26/05/2004, 20h51
  5. [SQL Server] Error converting data type varchar...
    Par Sir Tengu dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 13/06/2003, 10h46

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