当我试图将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>
元素中放入一些内容,或者完全忽略该元素(如果您的查询可以处理它的缺失)。