Sql server 无法使用SchemaId读取XML
ImporterNr、ForwarderNr、AddressType三列返回空值我做错了什么吗请给出建议 声明@XML SET@XML=Sql server 无法使用SchemaId读取XML,sql-server,Sql Server,ImporterNr、ForwarderNr、AddressType三列返回空值我做错了什么吗请给出建议 声明@XML SET@XML= SELECT Cust.value('(ImporterNr)[1]', 'nvarchar(50)') AS 'ImporterNr', Cust.value('(ForwarderNr)[1]', 'nVarchar(50)') AS 'ForwarderNr', Cust.value('(Items/Item/AddressType)
SELECT
Cust.value('(ImporterNr)[1]', 'nvarchar(50)') AS 'ImporterNr',
Cust.value('(ForwarderNr)[1]', 'nVarchar(50)') AS 'ForwarderNr',
Cust.value('(Items/Item/AddressType)[1]', 'nVarchar(50)') AS 'AddressType'
FROM
@XML.nodes('/Dealer/Head') AS AOC(Cust)
'
ZZ840
XYZA
先生
FZ12325
L
KZ经销商有限公司
KZ D
经销商T
Riverpol Romerro Calle 31D第12-25号
SG
1234
麦基
L
阿利亚夫
K V
瓦勒杜帕尔酒店
CARRERA 19 KM 0-700俱乐部拉科里沃·鲁达托
佐
123
瓦勒杜帕尔
'
如果存在多个节点,查询将不起作用。将名称空间添加到查询中:
'<?xml version="1.0" encoding="UTF-8"?>
<Dealer schemaID="DL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.abc.zy/kudos/kentucy/ik schema13_dealer(dl).xsd">
<Head>
<ImporterNr>ZZ840</ImporterNr>
<ForwarderNr>XYZA</ForwarderNr>
<RecordType>MR</RecordType>
<Filename>FZ12325</Filename>
<Items>
<Item>
<AddressType>L</AddressType>
<DealerNr>KZ DEALER LLC</DealerNr>
<ShortName>KZ D </ShortName>
<DealerName>DEALER T </DealerName>
<Street>Riverpol Romerro Calle 31D No. 12-25</Street>
<Country>SG </Country>
<ZIP>1234</ZIP>
<Town>MCGY</Town>
</Item>
<Item>
<AddressType>L</AddressType>
<DealerNr>ALIAV</DealerNr>
<ShortName>K V </ShortName>
<DealerName>K T VALLEDUPAR </DealerName>
<Street>CARRERA 19 KM 0-700 CLUB DEPORTIVO RUDATO </Street>
<Country>ZO </Country>
<ZIP>123 </ZIP>
<Town>VALLEDUPAR </Town>
</Item>
</Items>
</Head>
</Dealer>'
Declare@XML
SET@XML=
'
ZZ840
XYZA
先生
FZ12325
L
KZ经销商有限公司
KZ D
经销商T
Riverpol Romerro Calle 31D第12-25号
SG
1234
麦基
'
;使用XMLNAMESPACES('http://www.abc.zy/kudos/kentucy“作为ns1)
挑选
客户价值(‘(ns1:ImporterNr)[1],‘nvarchar(50)’)作为‘ImporterNr’,
客户价值(“(ns1:ForwarderNr)[1]”,将“nVarchar(50)”作为“ForwarderNr”,
客户值('(ns1:Items/ns1:Item/ns1:AddressType)[1],'nVarchar(50)'作为'AddressType'
从…起
@XML.nodes('/ns1:Dealer/ns1:Head')作为AOC(Cust)
或者将其从XML中删除。非常感谢。我只想知道如果存在多个节点,该怎么办。ie@explore365请更新您的问题,或创建一个新问题
'<?xml version="1.0" encoding="UTF-8"?>
<Dealer schemaID="DL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.abc.zy/kudos/kentucy/ik schema13_dealer(dl).xsd">
<Head>
<ImporterNr>ZZ840</ImporterNr>
<ForwarderNr>XYZA</ForwarderNr>
<RecordType>MR</RecordType>
<Filename>FZ12325</Filename>
<Items>
<Item>
<AddressType>L</AddressType>
<DealerNr>KZ DEALER LLC</DealerNr>
<ShortName>KZ D </ShortName>
<DealerName>DEALER T </DealerName>
<Street>Riverpol Romerro Calle 31D No. 12-25</Street>
<Country>SG </Country>
<ZIP>1234</ZIP>
<Town>MCGY</Town>
</Item>
<Item>
<AddressType>L</AddressType>
<DealerNr>ALIAV</DealerNr>
<ShortName>K V </ShortName>
<DealerName>K T VALLEDUPAR </DealerName>
<Street>CARRERA 19 KM 0-700 CLUB DEPORTIVO RUDATO </Street>
<Country>ZO </Country>
<ZIP>123 </ZIP>
<Town>VALLEDUPAR </Town>
</Item>
</Items>
</Head>
</Dealer>'
Declare @XML XML
SET @XML =
'<?xml version="1.0" encoding="UTF-8"?>
<Dealer schemaID="DL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.abc.zy/kudos/kentucy/ik schema13_dealer(dl).xsd">
<Head>
<ImporterNr>ZZ840</ImporterNr>
<ForwarderNr>XYZA</ForwarderNr>
<RecordType>MR</RecordType>
<Filename>FZ12325</Filename>
<Items>
<Item>
<AddressType>L</AddressType>
<DealerNr>KZ DEALER LLC</DealerNr>
<ShortName>KZ D </ShortName>
<DealerName>DEALER T </DealerName>
<Street>Riverpol Romerro Calle 31D No. 12-25</Street>
<Country>SG </Country>
<ZIP>1234</ZIP>
<Town>MCGY</Town>
</Item>
</Items>
</Head>
</Dealer>'
;WITH XMLNAMESPACES ('http://www.abc.zy/kudos/kentucy' as ns1)
SELECT
Cust.value('(ns1:ImporterNr)[1]', 'nvarchar(50)') AS 'ImporterNr',
Cust.value('(ns1:ForwarderNr)[1]', 'nVarchar(50)') AS 'ForwarderNr',
Cust.value('(ns1:Items/ns1:Item/ns1:AddressType)[1]', 'nVarchar(50)') AS 'AddressType'
FROM
@XML.nodes('/ns1:Dealer/ns1:Head') AS AOC(Cust)