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 :

Indexation textuelle XML dans colonne varbinary(max) ?


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut Indexation textuelle XML dans colonne varbinary(max) ?
    Bonjour à tous,

    Sous SQL Server 2008, j'ai besoin d'effectuer de la recherche en texte intégral dans une colonne contenant un document XML assez large pour chaque ligne.
    Seules les valeurs de ce document m'intéressent (pas les attributs ni les éléments).

    Le problème est que ce document XML est stockée dans une colonne de type nvarchar(max) (ne cherchez pas l'idiot qui a fait cela, ce n'est pas moi ).

    Je ne peux pas transtyper une telle colonne en XML à l'aide de la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE maTable
    SET	document_XML = CAST(document AS xml)
    Qui me "retourne" :

    Msg 9402, Level 16, State 1, Line 2
    XML parsing: line 1, character 38, unable to switch the encoding
    Il faut savoir que la collation de la base de données est Thai_CI_AS, mais je soupçonne plus quelque chose dans le domaine UTF-16 / UTF-8.

    J'ai donc tenté de transtyper au type varbinary et de préciser le type de document en ajoutant une nouvelle colonne de type char(4) valuée à '.xml'.
    Cette fois la population de la colonne fonctionne, mais une requête avec CONTAINS ne me retourne jamais de ligne.

    Qu'en pensez-vous ?

    @++

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 999
    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 999
    Billets dans le blog
    6
    Par défaut
    Essaye de faire une colonne persistante calculée avec un CAST.... COLLATE. Puis tu indexe en FT.

    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/ * * * * *

Discussions similaires

  1. [2008R2] Contenu XML dans Colonne XML
    Par jkn1092 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 19/08/2014, 11h53
  2. Réponses: 1
    Dernier message: 15/01/2010, 16h20
  3. [XL-2003] indexation valeur récurrente dans colonne
    Par chrystobale dans le forum Excel
    Réponses: 4
    Dernier message: 13/10/2009, 17h10

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