Bonjour,

J'ai une question sur la procédure stockée sp_xml_preparedocument, j'ai des champs textes qui pour une raison qui m'échappe commence par un caractère blanc (espace).

Je trouve cela ridicule mais malheureusement je ne suis pas l'utilisateur finale et je n'ai pas conçu le modèle initiale.

Enfin, il se fait que je dois transposer ces données en XML, jusque la pas de problème. aucune perte

Je dois maintenant réinsérer mes données et la ça se complique.

J'utilise la procédure stockée sp_xml_preparedocument, et mon document xml qui au départ avait un blanc pour mon champs, n'en a plus une fois le document préparer et traiter par openXML.

Mais pour résumer un long discours voici un exemple : (qui correspond presque a ce que je fais) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
DECLARE @idoc int
DECLARE @doc varchar(1000)
SET @doc ='
<ROOT>
<Customer CustomerID=" VINET" ContactName="Paul Henriot">
   <Order OrderID="10248" CustomerID=" VINET" EmployeeID="5" 
           OrderDate="1996-07-04T00:00:00">
      <OrderDetail ProductID="11" Quantity="12"/>
      <OrderDetail ProductID="42" Quantity="10"/>
   </Order>
</Customer>
<Customer CustomerID="LILAS" ContactName="Carlos Gonzlez">
   <Order OrderID="10283" CustomerID="LILAS" EmployeeID="3" 
           OrderDate="1996-08-16T00:00:00">
      <OrderDetail ProductID="72" Quantity="3"/>
   </Order>
</Customer>
</ROOT>'
--Create an internal representation of the XML document.
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
-- SELECT stmt using OPENXML rowset provider
SELECT *
FROM   OPENXML (@idoc, '/ROOT/Customer/Order/OrderDetail',2)
         WITH (OrderID       int         '../@OrderID',
               CustomerID  varchar(10) '../@CustomerID',
               OrderDate   datetime    '../@OrderDate',
               ProdID      int         '@ProductID',
               Qty         int         '@Quantity')
Le résultat obtenu est le suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
10248	VINET	1996-07-04 00:00:00.000	11	12
10248	VINET	1996-07-04 00:00:00.000	42	10
10283	LILAS	1996-08-16 00:00:00.000	72	3
Comment puis je faire pour ne pas perdre mon blanc, dynamiquement je parle bien sur et sans prédicat des caractère interdit.

Merci de votre aide