解析SQL Server数据

我使用SSIS和SharePointListAdapters 从我的SharePoint 2010列表导入数据并将其放入SQL Server 2008表中。大约有500行数据。现在的挑战是适当地解析数据。我有一些列周围有html标签的列。解析SQL Server数据

对于例如,列项目说明有数据等 项目说明

<div class="ExternalClass914BB5DA5CB142EB854C739EAACEE3BB"> 

<div>Import Data from SharePoint list to Database.

</div>

</div>

在使用Google,我发现下面的函数的。它按预期工作。我的问题是如何编辑此函数以将名为Project Desc的列名作为参数,以便该特定列中的所有数据都将丢弃html标记。任何想法?非常感谢Adv!

create function dbo.StripHTML(@text varchar(max)) returns varchar(max) as 

begin

declare @textXML xml

declare @result varchar(max)

set @textXML = @text;

with doc(contents) as

(

select chunks.chunk.query('.') from @textXML.nodes('/') as chunks(chunk)

)

select @result = contents.value('.', 'varchar(max)') from doc

return @result

end

go

select dbo.StripHTML('<div class="ExternalClassB1D90504EAFF42BE8A8056E686F4E195"> <div>Import Data from SharePoint list to Database.</div></div>')

回答:

一旦你创建的功能,你只需要使用它,如果它是一个表中的普通区,并把在该参数去的地方源表和字段...

SELECT 

dbo.StripHTML(yourTable.yourColumn) AS yourResults

FROM

yourTable

(如果您没有编辑的功能,你只是从表中的数据提供它。)

回答:

SQL和T-SQL都没有办法解析HTML。不要将HTML与XML混淆...

您可以使用类似HTML Agility Pack的东西从托管代码解析HTML,无论是在SSIS包中还是作为SQLCLR部署函数。

回答:

我在SQLServerCentral.com上找到了这个答案。因为它是iTVF(内嵌表值函数),所以它的运行速度比您现在使用的函数要快。事实上,速度大约快两倍。参考:http://www.sqlservercentral.com/Forums/FindPost1198135.aspx

CREATE FUNCTION dbo.StripHtmlTags2 

(@HtmlText XML)

RETURNS TABLE

AS

RETURN

(

SELECT

@HtmlText.value('(.)[1]', 'nvarchar(max)') AS result

)

以上是 解析SQL Server数据 的全部内容, 来源链接: utcz.com/qa/261230.html

回到顶部