XML:
<ZZZ:PRODUCT xmlns:ZZZ="123"><ZZZ:CONTENT>Blank</ZZZ:CONTENT>/ZZZ:PRODUCT>
ZZZ将根据实体而变化。如何在SQL中传递参数并仅返回匹配的参数?以下是我的想法,并希望将@Entity参数添加到。
SQL:
@Entity varchar(10)
SELECT * FROM Products
WHERE Products.productDetailXML.exist('//ZZZ:PRODUCT') = 1
答案 0 :(得分:0)
我不确定我明白你想要什么,但无论如何我都会提供答案。
您不必处理名称空间前缀不同的情况。执行查询时,名称空间很重要。您拥有的查询不起作用,因为您尚未指定前缀ZZZ
所属的命名空间。
此查询将为您提供使用命名空间123
的所有行。
WITH XMLNAMESPACES('123' as ns)
SELECT *
FROM Products
WHERE Products.productDetailXML.exist('//ns:PRODUCT') = 1
前缀是ZZZ
<ZZZ:PRODUCT xmlns:ZZZ="123">
<ZZZ:CONTENT>Blank</ZZZ:CONTENT>
</ZZZ:PRODUCT>
或其他完全类似A
的内容。
<A:PRODUCT xmlns:A="123">
<A:CONTENT>Blank</A:CONTENT>
</A:PRODUCT>
您仍将获得使用命名空间123
的行。