Sql server 从XML(SQL Server)向表中插入值
我有以下XML:Sql server 从XML(SQL Server)向表中插入值,sql-server,xml,Sql Server,Xml,我有以下XML: <Files> <File> <Name>pic1</Name> <Description>Pics</Description> <URL>URL1</URL> <TypeText>jpg</TypeText> </File> <File> <Name>pic2&l
<Files>
<File>
<Name>pic1</Name>
<Description>Pics</Description>
<URL>URL1</URL>
<TypeText>jpg</TypeText>
</File>
<File>
<Name>pic2</Name>
<Description>Pics</Description>
<URL>URL2</URL>
<TypeText>jpg</TypeText>
</File>
<File>
<Name>pic3</Name>
<Description>Pics</Description>
<URL>URL3</URL>
<TypeText>jpg</TypeText>
</File>
</Files>
但它给了我错误
XQuery [value()]: 'value()' requires a singleton (or empty sequence), found operand of type 'xdt:untypedAtomic *'
我想我在jpath
部分犯了一个错误。是对还是错
Thanx提前您需要更改select查询:
SELECT
XFiles.value('Name[1]', 'nvarchar(120)') as Name,
XFiles.value('Description[1]', 'nvarchar(300)'),
XFiles.value('URL[1]', 'nvarchar(max)'),
XFiles.value('TypeText[1]', 'nvarchar(120)')
FROM @FilesXML.nodes('/Files/File') as XTbl(XFiles)
例如,如果只选择
Name
,则该XPath查询将返回Name
节点的集合,即使只有一个子节点因此,您看到了错误。您必须确保XPath查询只返回一个内容,因此添加了[1]
索引器。您需要更改select查询:
SELECT
XFiles.value('Name[1]', 'nvarchar(120)') as Name,
XFiles.value('Description[1]', 'nvarchar(300)'),
XFiles.value('URL[1]', 'nvarchar(max)'),
XFiles.value('TypeText[1]', 'nvarchar(120)')
FROM @FilesXML.nodes('/Files/File') as XTbl(XFiles)
例如,如果只选择
Name
,则该XPath查询将返回Name
节点的集合,即使只有一个子节点因此,您看到了错误。您必须确保XPath查询只返回一个内容,因此添加了[1]
索引器。您需要更改select查询:
SELECT
XFiles.value('Name[1]', 'nvarchar(120)') as Name,
XFiles.value('Description[1]', 'nvarchar(300)'),
XFiles.value('URL[1]', 'nvarchar(max)'),
XFiles.value('TypeText[1]', 'nvarchar(120)')
FROM @FilesXML.nodes('/Files/File') as XTbl(XFiles)
例如,如果只选择
Name
,则该XPath查询将返回Name
节点的集合,即使只有一个子节点因此,您看到了错误。您必须确保XPath查询只返回一个内容,因此添加了[1]
索引器。您需要更改select查询:
SELECT
XFiles.value('Name[1]', 'nvarchar(120)') as Name,
XFiles.value('Description[1]', 'nvarchar(300)'),
XFiles.value('URL[1]', 'nvarchar(max)'),
XFiles.value('TypeText[1]', 'nvarchar(120)')
FROM @FilesXML.nodes('/Files/File') as XTbl(XFiles)
例如,如果只选择
Name
,则该XPath查询将返回Name
节点的集合,即使只有一个子节点因此,您看到了错误。您必须确保XPath查询只返回一个内容,因此添加了[1]
索引器。错误是什么?您应该在此处提供错误。@Ivica抱歉,更新后:)错误是什么?您应该在此处提供错误。@Ivica抱歉,更新后:)错误是什么?您应该在此处提供错误。@Ivica抱歉,更新后:)错误是什么?您应该在此处提供错误。@Ivica抱歉,更新后:)