因此,我正在尝试将作为 Oracle 应用程序的 Web 服务转换为 T-SQL。有趣的是我只有 Web 服务代码,根本没有数据库代码。我看到有一个输入参数包含<ROWSET><ROW NUM=\"1\"><TRANSACTIONID>123456</TRANSACTIONID></ROW></ROWSET>
我正在浏览 T-SQL 的文档,但似乎找不到任何有用的信息来说明我可以用这个 xml 做什么。据我了解,它用于将值插入表中,因为每次调用中的元素都不相似。
任何帮助,将不胜感激。
因此,我正在尝试将作为 Oracle 应用程序的 Web 服务转换为 T-SQL。有趣的是我只有 Web 服务代码,根本没有数据库代码。我看到有一个输入参数包含<ROWSET><ROW NUM=\"1\"><TRANSACTIONID>123456</TRANSACTIONID></ROW></ROWSET>
我正在浏览 T-SQL 的文档,但似乎找不到任何有用的信息来说明我可以用这个 xml 做什么。据我了解,它用于将值插入表中,因为每次调用中的元素都不相似。
任何帮助,将不胜感激。
假设这XML
是T-SQL
存储过程或函数的参数,您可以使用该OPENXML
实用程序处理此类数据。这是一个完整的示例(为清楚起见,在此处重新发布):
DECLARE @idoc int
DECLARE @doc varchar(1000)
SET @doc ='
<people>
<person id="1">
<firstname>John</firstname>
<surname>Doe</surname>
</person>
<person id="2">
<firstname>Mary</firstname>
<surname>Jane</surname>
</person>
</people>
'
/* Create an internal representation of the XML document */
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
-- Execute a SELECT statement that uses the OPENXML rowset provider.
SELECT *
FROM OPENXML (@idoc, '/people/person',1)
WITH (id varchar(20),
firstname varchar(20) 'firstname',
surname varchar(20) 'surname')
EXECUTE sp_xml_removedocument @idoc
结果:
id firstname surname
1 John Doe
2 Mary Jane