使用游标输出XML文件

时间:2016-05-23 09:50:46

标签: sql sql-server xml while-loop cursor

CREATE PROCEDURE [news01].[usp_generateXml]
    (@email NVARCHAR(356))
AS
BEGIN TRY
    DECLARE @terms TABLE(sourceName NVARCHAR(256),
                         url NVARCHAR(Max),
                         articles NVARCHAR(MAX))

INSERT INTO @terms(sourceName, url, articles)
    SELECT  
        (SELECT source_name FROM tbl_sources),
        (SELECT article_url FROM tbl_articles),
        (SELECT article_id FROM news01.tbl_articles 
         WHERE article_title LIKE CONCAT('%',alt.term, '%'))            
    FROM    
        news01.tbl_alertTerms alt
    JOIN
        news01.tbl_userProfiles ussr ON (alt.profile_id = ussr.profile_id)

    DECLARE @articles AS NVARCHAR(MAX)
    DECLARE @sourceName AS NVARCHAR(256)
    DECLARE @url AS NVARCHAR(MAX)

    DECLARE cursorSearch CURSOR FOR
        SELECT sourceName, url, articles 
        FROM @terms

    OPEN cursorName

    FETCH NEXT FROM cursorName INTO @sourceName, @url, @articles 

    WHILE @@FETCH_STATUS = 0
        SELECT  
            sourceName AS 'SourceName',
            url AS 'Url',
            articles AS 'Articles'
        FROM
            @terms
        FOR XML AUTO, ROOT('Articles');

    CLOSE cursorName

我想使用游标输出XMl原始文件(xml链接)。每个用户都有一个术语(例如足球),循环必须找到带有关键词的文章,然后输出带有所有文章,文章网址和源名称(例如BBC)的xml文件。通过输入选择用户他的电子邮件作为参数。

光标是否正确实现?我做错了什么?

任何帮助将不胜感激!

0 个答案:

没有答案