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

Développement SQL Server Discussion :

Recherche dans un long champ texte [2017]


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 81
    Par défaut Recherche dans un long champ texte
    Bonsoir à tous,

    j'ai un petit soucis

    J'essaie de trouver une chaine de caractères dans un très long champs texte, je m'explique :

    Je cherche les 8 caractères qui suivent la chaine "consignmentId":" qui se trouve dans un champs texte de plus de 70 000 caractères.

    J'ai essayer avec plusieurs fonction mais j'ai l'impressions que je me heurte a une limite de 8 000 caractères.

    Si vous avez des pistes je suis preneur

    Merci par avance pour vos réponses.

    Thierry

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 640
    Billets dans le blog
    10
    Par défaut
    bonjour

    Effectivement, la limite de la fonction charindex() est 8000 caractères
    cf. https://docs.microsoft.com/fr-fr/sql...l-server-ver15

    À part découper la colonne en autant d'ensembles de 8000 caractères que nécessaires (au risque de couper au milieu de la chaîne recherchée) je ne vois pas.

    Le truc, c'est que justement, une colonne aussi large ne devrait pas faire l'objet de recherches, c'est par définition un fourre-tout à manipuler comme tel. Une colonne et non pas un champ, les champs n'existent pas dans les bases de données relationnelles .
    La zone que vous recherchez devrait être stockée isolément dans une colonne spécifique adaptée à son type et à sa longueur, ainsi plus de problème.

  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
    22 010
    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 : 22 010
    Billets dans le blog
    6
    Par défaut
    Un SGBDR n'est pas un traitement de texte.... Cependant, avec pas mal d'huile de coude, vous pouvez utiliser l'indexation textuelle de SQL Server afin de trouver le rang du "mot" recherché puis accéder aux mots suivants...
    Pas simple car il faut utiliser les tables et fonction système de FTS, mais faisable...

    Autre solution : créer votre propre UDF pour ce faire....

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 81
    Par défaut
    Merci pour vos réponses

    j'ai résolue mon pb en passant par ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CAST(MON_CHAMPS AS varchar(max))

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 02/07/2008, 12h29
  2. Recherche dans tous les champs
    Par Ayack dans le forum IHM
    Réponses: 6
    Dernier message: 07/06/2008, 23h51
  3. Fonction 'recherche' dans un editeur de texte
    Par jojodu31 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 03/04/2008, 15h37
  4. Texte diff. dans un mm Champ Texte avec rollOver
    Par eternelifestyle dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 08/09/2007, 15h26
  5. [MySQL] Rechercher dans tous les champs
    Par Faure dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/10/2005, 14h52

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