我在從xml文件中加載數據時遇到了一些嚴重的問題。我想將其聲明爲以.xml文件名作爲參數的過程。帶有FileName變量的SQL Server存儲過程
GO
ALTER PROCEDURE loadXML
@FileName varchar(50)
AS
BEGIN
DECLARE @XML AS XML,@hDoc AS INT
SELECT @XML = CONVERT(XML, BulkColumn)
FROM OPENROWSET(BULK 'D:\ '[email protected] , SINGLE_BLOB) AS x;
EXEC sp_xml_preparedocument @hDoc OUTPUT, @XML
INSERT INTO [dbo].[Client]
SELECT *
FROM OPENXML(@hDoc, 'orderType/client')
WITH
(
OrderId varchar(200) '../../../sn',
Client_number varchar(200) 'client_number',
FirstName varchar(200) 'firstname',
LastName varchar(200) 'lastname',
E-Mail varchar(200) 'email'
)
EXEC sp_xml_removedocument @hDoc
END
exec loadXML 'order2.xml'
很明顯,這段代碼不起作用,因爲@FilePath變量附近有一個語法錯誤。我試圖用整個SELECT部分來創建字符串變量,但它不起作用。
'FROM OPENROWSET(BULK'+'D:\'+ @ FileName'',SINGLE_BLOB)AS x;'?我會說你的單引號搞砸了。哦,請發佈確切的錯誤消息。 –
好吧,我用報價清理了這個爛攤子,謝謝。使用此特定代碼收到的錯誤是:消息102,級別15,狀態1,過程loadXML,行7 '+'附近的語法不正確。 – PRHMN
你不能像這樣連接。最好的辦法是將我的答案中提到的整個路徑作爲參數傳遞。 – Rahul