我試圖從「StkPart」屬性中選擇每個PartNum,WarehouseCode和OnhandQty,並從「Plant」屬性中選擇工廠。此xml文件中只有一個「工廠」,「工廠」將與「StkPart」屬性中的每行關聯。
例如:爲什麼選擇查詢不起作用?
PartNum WarehouseCode OnhandQty Plant
1. 10-12345 Corona 150 MfgSys
2. 10-12351 Cork 1 MfgSys
3. 10-51617a Here 198 MfgSys
4. 10-97654 There 67 MfgSys
這是我一直想(XML代碼是在底部): 此代碼的工作,並把數據輸入我的表:
USE Database
GO
CREATE TABLE XMLwithOpenXML
(
Id INT IDENTITY PRIMARY KEY,
XMLData XML,
LoadedDateTime DATETIME
)
INSERT INTO XMLwithOpenXML(XMLData, LoadedDateTime)
SELECT CONVERT(XML, BulkColumn) AS BulkColumn, GETDATE()
FROM OPENROWSET(BULK 'C:\Test\StockStatusReport30597.XML', SINGLE_BLOB) AS x;
SELECT * FROM XMLwithOpenXML
然後我儘量選擇數據,但是這是行不通的:
USE Database
GO
DECLARE @XML AS XML, @hDoc AS INT, @SQL NVARCHAR (MAX)
SELECT @XML = XMLData FROM XMLwithOpenXML
EXEC sp_xml_preparedocument @hDoc OUTPUT, @XML
SELECT PartNum
FROM OPENXML(@hDoc, 'ReportDataSet/PartNum')
WITH
(
PartNum [varchar](50) '@PartNum'
)
EXEC sp_xml_removedocument @hDoc
GO
如何獲得上面的代碼工作?
下面是XML文件下載: http://wikisend.com/download/101282/StockStatusReport30597.XML
的XML有未指定的命名空間。 – Laurence
@Laurence感謝您的回覆。我是XML新手。未指定的命名空間與我的問題有什麼關係? – Kevin
這意味着任何試圖使用你的例子的人都會在insert語句中出錯。 – Laurence