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 ?

@++