0
我有XPath來從XML在VARCHAR(MAX)可變刪除,但XML.modify('delete '[email protected])
給出一個錯誤,的Xquery使用XPath從SQL刪除:可變
XML數據類型方法的參數1「修改「必須是字符串 。
DECLARE @myXML XML,
@MyXpath VARCHAR(MAX)
-- Processing of Xpaths for components needed to remove
-- Adding those in @XpathsToRemove
SELECT TOP(1) @MyXpath = [XPATH]
FROM @XpathsToRemove
SET @myXML.modify('delete '[email protected])
有什麼辦法去除使用XPath在@MyXpath變量提供這些組件?
- 編輯示例XML
DECLARE @myXML XML ='<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Dont forget me this weekend!</body>
</note>'
,@MyXpath VARCHAR(MAX) = '//note/from'
-- There are many Xpaths and dynamically generated with some processing so I don't want to hardcode Xpath there
SET @myXML.modify('delete '[email protected])
--This doesn't works too
-- SET @myXML.modify('delete "sql:variable("MyXPath")"')
SELECT @myXML
*有什麼辦法*簡短的回答:是的,*動態創建的SQL *和'EXEC'。如果你需要幫助,你必須提供更多細節。你想要達到什麼目的? – Shnugo
@Shnugo如果我創建SQL和EXEC,那麼它不能與本地變量交互,即「@ myXML」。我不想在數據庫端做任何更改,只是爲了更新本地的@ XML變量 –
您如何期待我的幫助?我不知道你的變量,我也不知道你想要引入的'XPath'。一般來說:你嘗試的東西不行!請提供一個工作示例:(簡化)XML和工作語句,並使用字面書寫的.modify()。然後解釋你想動態改變哪部分,並希望有人能提出解決方案。 – Shnugo