解析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