|
|
|
Grasshopper
      
Group: General Forum Members
Last Login: Monday, May 13, 2013 5:47 AM
Points: 24,
Visits: 122
|
|
Just discovered a new problem, and I cant get round it. The data is now getting XML encoded < to < and > to > etc
Any ideas?
|
|
|
|
|
Right there with Babe
      
Group: General Forum Members
Last Login: Yesterday @ 5:56 AM
Points: 719,
Visits: 1,196
|
|
| do a replace around it. Each character will be XML encoded and you can simply replace it back.
|
|
|
|
|
Ten Centuries
      
Group: General Forum Members
Last Login: Yesterday @ 4:46 PM
Points: 1,287,
Visits: 3,850
|
|
oscarooko (10/5/2012) Just discovered a new problem, and I cant get round it. The data is now getting XML encoded < to < and > to > etc
Any ideas?
You need to apply a root node to the XML, force it into XML datatype and then select out the text from the root node....like this:
declare @Table1 table (EmailAddress varchar(20), Msg varchar(20)) insert @Table1 select 'email1','blue' union select 'email2','black' union select 'email1','&white' union select 'email1','<orange' union select 'email4','red'
select e.EmailAddress as Email ,stuff((select ',' + t.Msg from @Table1 t where t.EmailAddress = e.EmailAddress for xml path(''),root('a'),type).value('(a/text())[1]','varchar(4000)'),1,1,'') as MessageBody from @Table1 e group by e.EmailAddress
The change is this line:
for xml path(''),root('a'),type).value('(a/text())[1]','varchar(4000)'),1,1,'') as MessageBody Where I added
,root('a'),type to the FOR XML PATH('')
and
.value('(a/text())[1]','varchar(4000)') to pull the text out again...
MM
|
|
|
|