毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 数据库 >> 正文

for xml path拼接字符串时特殊字符如何处理

更新时间:2013-11-5:  来源:毕业论文

使用场景:用来拼接大量的字符串(经过测试,用for xml path性能非常好)。
问题:字符串中有英文大于、小于、等于等等对于xml来讲的特殊字符,所以用for xml path拼接后给自动转义了,除了Replace之外有没有其他比较靠谱的方式来处理(尤其是性能上),因为用Replace的话,还不如直接用传统的字符串拼接呢。
测试代码
DECLARE @T AS TABLE ( TestText VARCHAR(50) ) ; DECLARE @ExecuteSql NVARCHAR(MAX) ; INSERT  @T         ( TestText         )         SELECT  'Hello > World;'        UNION ALL        SELECT  'World < Hello;' ; SELECT  @ExecuteSql = ( SELECT  '' + TestText                         FROM    @T                       FOR                        XML PATH('')                       ) ; SELECT  @ExecuteSql ;
用replace函数,还是比较方便,

但是如果在字符串中存在比较多的 特殊字符的时候,那么用replace就很不方便了,还不如你说的字符串拼接来的灵活

另外,之前在论坛,看到有人说,在数据量较大的时候,使用for xml path来拼接大量字符串,可能会有性能问题。

DECLARE @T AS TABLE ( TestText VARCHAR(50) )  INSERT  @T( TestText) SELECT 'Hello > World;'UNION ALLSELECT 'World < Hello;'   ;WITH cte AS(SELECT ROW_NUMBER()OVER(ORDER BY GETDATE()) rn,* FROM @T)   SELECT a.TestText+b.TestText as TestText   FROM cte a,cte b  where a.rn<b.rn   --结果 TestText ---------------------------------------------------------------------------------------------------- Hello > World;World < Hello;   (1 行受影响)

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。