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

MS SQL Server Discussion :

[SQLSERVER 2K] PB de capacité des champs de type "text" et "char"


Sujet :

MS SQL Server

  1. #1
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 172
    Points : 72
    Points
    72
    Par défaut [SQLSERVER 2K] PB de capacité des champs de type "text" et "char"
    Bonjour tout le monde,

    J'ai un soucis concernant les types "text" et "char".

    J'importe des données depuis un fichier "XLS" dans une base de donnée SQLSERVER temporaire.
    Le fichier contient notamment des champs avec beaucoup de caractères (+ de 255).
    Dans ma table temporaire j'ai donc des champs de type char(255).

    Ensuite, je repartie les données de la base temporaire vers une autre table. Les données des champs dont je parle ci-dessus, sont transférés vers des champs de type "text".

    J'ai lu que le type nchar etait sur 2octets et au maximum 8000 octets de données par champ. Je suppose que le char est sur 1 octet.

    Mes questions sont :
    quel est le maximum de caractère qu'on peut mettre dans un type "char" ? 8000 ?

    En extrayant les données du fichier XLS, quelle est la capacité maximale du champ qui va recevoir les données ? char(xxx) ?

    Merci de votre aide.
    Cordialement

  2. #2
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 172
    Points : 72
    Points
    72
    Par défaut
    J'importe les données grâce à un lot DTS.

    Lors de la copie des données du fichiers XLS vers la base temporaire j'ai ce message d'erreur :


    La colonne 8 du fichier XLS fait + de 255 caractères.
    Dans la base temporaire, j'ai remplacé le type de champ correspondant a la colonne 8 : char(255) en nchar(1500).

    Ce qui est sur c'est qu'il n'y a pas plus de 1500 caractères dans la colonne B.

    Comment faire ?

    Merci de votre aide.
    Cordialement

    ps : cheminement des données : colonne XLS (fichier XLS) => nchar(1500) (base temporaire) => text (base production)

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 856
    Points : 52 993
    Points
    52 993
    Billets dans le blog
    6
    Par défaut
    D'abord champ cela n'existe pas. Dans une base de données on parle de colonnes.
    A lire : http://sqlpro.developpez.com/cours/sqlaz/erreurs/#L2

    Ensuite : la limite des types est la suivante :
    [VAR]CHAR : 80000
    N[VAR]CHAR : 40000
    NTEXT / TEXT : 2 Go, soit 1 milliards de caractères pour l'un (N) et 2 pour l'autre

    Limite de taille d'une ligne de table : 8060 octets.

    Vous pouvez donc créer une table avec 10 colonnes de type VARCHAR(8000) à condition que le stockage des lignes ne dépasse jamais 8060 octets par ligne.

    En version 2005 ces limites peuvent sauter si l'option ROW OVERFLOW est activée.

    A +

  4. #4
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 172
    Points : 72
    Points
    72
    Par défaut
    Merci bien, vous m'avez compris c'est le principal.

    En ce qui concerne l'erreur ci-dessus.
    Savez vous comment régler le problème ?

    Je précise aussi que je suis sur SQL SERVER 2000.

    Merci de votre aide.
    Cordialement

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 856
    Points : 52 993
    Points
    52 993
    Billets dans le blog
    6
    Par défaut
    Agrandissez les types des colonnes qui vous posent ce problème....

    A +

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

Discussions similaires

  1. Lecture des champs de type numerique
    Par jean sami dans le forum Débuter
    Réponses: 28
    Dernier message: 14/09/2008, 15h06
  2. Lire des champs dans une fichier texte
    Par darkman13130 dans le forum C++Builder
    Réponses: 17
    Dernier message: 06/06/2008, 16h31
  3. Réponses: 11
    Dernier message: 12/03/2008, 16h25
  4. Réponses: 1
    Dernier message: 09/11/2006, 12h08
  5. requete sql avec between sur des champs de type Date
    Par ersoufiane dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/08/2006, 19h43

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