当我试图将XML存储在SQL中而不是使用空元素时,SQL只需更改它并仅使用元素的一个标记来存储它。
例如,要存储的XML是:

<ROOT>
    <FIRSTNAME>ROGER</FIRSTNAME>
    <MIDDLENAME></MIDDLENAME>
</ROOT>

然后sql将其存储为
    <ROOT>
        <FIRSTNAME>ROGER</FIRSTNAME>
        <MIDDLENAME />
    </ROOT>

sql更新非常简单:
UPDATE
    SESIONESREPORTES
   SET
    SER_PARAMETROS = '
        <ROOT>
               <FIRSTNAME>ROGER</FIRSTNAME>
               <MIDDLENAME></MIDDLENAME>
        </ROOT>'
 WHERE SER_ID=7

我需要这样做,因为我有一些查询在元素为空时失败,您可以在这里看到它。
Merging many rows in a single

最佳答案

<MIDDLENAME></MIDDLENAME>


<MIDDLENAME/>

是等价的;任何XML解析器都将它们作为一个空元素对待。如果查询在空元素上失败,则在其中任何一个元素上都将失败。您需要重写查询以处理空元素,在<MIDDLENAME>元素中放入一些内容,或者完全忽略该元素(如果您的查询可以处理它的缺失)。

10-08 07:39