【发布时间】:2014-03-31 06:46:57
【问题描述】:
我有一个存储过程,它读取一些 Id 并从表中获取与这些 id 关联的 XML 的值。
USE [Database]
GO
/****** Object: StoredProcedure [dbo].[GetLetterIssueTcm] Script Date: 03/31/2014 12:07:02 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create PROCEDURE [dbo].[GetLetterIssueTcm]
@LetterIds varchar(5000)
AS
Declare @SQL VarChar(1000)
select @SQL = 'Select content from component_presentations where publication_id = 80
and template_id = 41064 and component_id in (' + @LetterIds +')'
Exec ( @SQL)
LetterIds 是一个逗号分隔的 id 字符串,例如“55773,52663” 此存储过程返回的内容包含每个 LetterId 的 XML。 XML 看起来像:
<letterIssue>
<Date>2010-12-01T00:00:00</Date>
<Items>
<Item id="tcm:80-74757"></Item>
<Item id="tcm:80-74760"></Item>
<Item id="tcm:80-74766"></Item>
<Item id="tcm:80-74770"></Item>
<Item id="tcm:80-74772"></Item>
</Items>
</letterIssue>
现在我想创建一个虚拟表,其中一列中包含字母 ID,第二行中包含该字母 ID 的 xml 中的关联项目 ID。比如:
LetterId Item_Id
55773 tcm:80-74757
55773 tcm:80-74760
这可以在同一个存储过程中完成,或者我不介意将此存储过程的输出(多个 xml)传递给另一个,然后检索与其关联的项目 ID。那么如何处理多个xml并从中找到项目ID呢?
【问题讨论】:
标签: mysql sql sql-server xml stored-procedures