And*_*rew 1 xml sql sql-server
我试图将xml文件导入sql server但尚未成功.
xml文件的结构如下:
<Users xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<User>
<PartitionKey>be-BY</PartitionKey>
</User>
</Users>
Run Code Online (Sandbox Code Playgroud)
我使用以下代码:
SELECT
xmldata.value('(PartitionKey)[1]', 'NCHAR(10)') AS 'partition_key'
FROM
(SELECT CAST(x AS XML)
FROM OPENROWSET(
BULK 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\SkillageXML\userstest1111.xml',
SINGLE_BLOB
)
AS T(x)
) AS T(x)
CROSS APPLY
x.nodes('/Users/User') AS X(xmldata);
Run Code Online (Sandbox Code Playgroud)
但是,在处理完文件后,我看不到任何值.有什么遗漏?
这对我来说就像一个魅力:
SELECT
XUsers.value('(PartitionKey)[1]', 'NCHAR(10)') AS 'partition_key'
FROM
(SELECT
BulkXML = CAST(BulkColumn AS XML)
FROM
OPENROWSET(BULK 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\SkillageXML\userstest1111.xml', SINGLE_BLOB) AS BX
) AS T
CROSS APPLY
BulkXml.nodes('/Users/User') AS XTbl(XUsers);and returns:
partition_key
be-BY
Run Code Online (Sandbox Code Playgroud)
我认为你使用 AS T(x)别名的方法两次导致混淆 - 尝试使用更有意义的东西而不是两个东西的相同别名.