[英]What is the type of XQuery passed to SQL Server XML Data Type methods?
根据BOL的value()方法(xml数据类型) ,
value()
方法有两个参数
我需要将varchar
或nvarchar
传递给value()
吗? 如何找出XQuery或SQLType期望的类型?
最终目标 :创建使用XML数据类型方法的实用工具UDF / sprocs。
可以同时使用:
WITH q AS
(
SELECT CAST('<root><node>1</node></root>' AS XML) AS doc
)
SELECT doc.value('(/root/node)[1]', 'INT'),
doc.value(N'(/root/node)[1]', 'INT')
FROM q
请注意, XQuery
是在解析阶段编译的,即,您只能提供字符串文字作为第一个参数(而不是列,表达式或变量)。
此字符串文字没有“ type”,因为type假定了一组可能在运行时才知道的可能值,并且XML
函数仅接受在编译时应该知道的文字XQuery
表达式。
您不能通过参数或函数传递它们,也不能将它们作为变量传递,只能将它们硬编码到查询中。
将它们视为保留字(例如SELECT
或UPDATE
),出于某种原因,应将其括在单引号中。
如果希望XQuery
是动态的,则应动态构建整个查询。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.