Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1263 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Comparaison Varchar et Text

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comparaison Varchar et Text

n°1574534
frere tuck
Posté le 13-06-2007 à 17:28:57  profilanswer
 

Bonjour,
je suis actuellement en train de travailler sur une base de données SQL Sever et je me heurte au problème de comparaison entre des données de type TEXT et VARCHAR. En effet je récupère systématiquement le message d'erreur : "Les types de données text et varchar sont incompatibles dans l'opérateur equal to.".
 
Une solution est elle envisageable ou dois je changer le type de donnée TEXT en VARCHAR(x) ?
 
 :hello:

mood
Publicité
Posté le 13-06-2007 à 17:28:57  profilanswer
 

n°1574551
MagicBuzz
Posté le 13-06-2007 à 17:50:14  profilanswer
 

la question est mal posée.
 
grossomodo, le format "TEXT" est un format "binaire" de taille infinie (bon, y'a une limite, mais largement suppérieure aux besoin). pour cette raison, dans un souci de performances, SQL Server (comme tout autre SGBD) interdit les oppérations de chaîne dessus, car beaucoup trop consommatrices.
LIKE ou = par exemple ne sont pas supportés.
 
Convertir les champs TEXT en VARCHAR() est une bonne idée dans la mesure du possible. Effectivement, quand on choisi TEXT, c'est normalement en connaissance de cause : j'ai besoin de plus de 8000 caractères. Si dans ton cas c'est un choix "par erreur", alors la question ne se pose pas, il faut impérativement que tu passes en VARCHAR().
Dans le cas contraire, il existe des méthodes permettant d'extraire du texte au format VARCHAR à partir d'un TEXT afin de faire des oppérations de comparaison, mais ceci est extrêment lent.
 
Ensuite, je t'invite à te pencher sur les fonctionnalités d'Indexaction de texte (FULLTEXT INDEX). Il permette d'indexer rapidement de gros volumes de texte, et permettent d'effectuer des recherches extrêment rapides dedans. Cela apporte aussi son lot de fonctions plus ou moins intéressances, comme "même radicale", "près de", "même champ lexical", etc. mais aussi des indices de pertinances dans les résultats.

n°1574560
frere tuck
Posté le 13-06-2007 à 18:06:13  profilanswer
 

MagicBuzz a écrit :

la question est mal posée.
 
grossomodo, le format "TEXT" est un format "binaire" de taille infinie (bon, y'a une limite, mais largement suppérieure aux besoin). pour cette raison, dans un souci de performances, SQL Server (comme tout autre SGBD) interdit les oppérations de chaîne dessus, car beaucoup trop consommatrices.
LIKE ou = par exemple ne sont pas supportés.
 
Convertir les champs TEXT en VARCHAR() est une bonne idée dans la mesure du possible. Effectivement, quand on choisi TEXT, c'est normalement en connaissance de cause : j'ai besoin de plus de 8000 caractères. Si dans ton cas c'est un choix "par erreur", alors la question ne se pose pas, il faut impérativement que tu passes en VARCHAR().
Dans le cas contraire, il existe des méthodes permettant d'extraire du texte au format VARCHAR à partir d'un TEXT afin de faire des oppérations de comparaison, mais ceci est extrêment lent.
 
Ensuite, je t'invite à te pencher sur les fonctionnalités d'Indexaction de texte (FULLTEXT INDEX). Il permette d'indexer rapidement de gros volumes de texte, et permettent d'effectuer des recherches extrêment rapides dedans. Cela apporte aussi son lot de fonctions plus ou moins intéressances, comme "même radicale", "près de", "même champ lexical", etc. mais aussi des indices de pertinances dans les résultats.


 
Conclusion : merci pour la réponse et pour l'explication.
 
 :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Comparaison Varchar et Text

 

Sujets relatifs
Parseur ou comparaison de chaine de caractère?comparaison avec une expression régulière
ecrire les log erreur dans un fichier text[Perl - Débutant]Probleme de comparaison de 2 chaines
Comparaison de Chaine de caractères, déplacement DOMSignature outlook html en scroll text
[SQL] [Résolu] Caractere chinois - PhpmyadminW-in-text, IntelliTXT, Click-in text ou Ad-In-text
[PHP] comparaison string vs integer (résolu)[ASP-ACCESS] Faire une comparaison entre 2 recordset
Plus de sujets relatifs à : Comparaison Varchar et Text


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR