我有一个包含xml类型列的表。我想创建一个查询,如果xml为null,则设置一个xml,否则添加一个节点到xml。我的查询如下。添加节点在没有CASE语句的情况下成功执行,但是一旦放入CASE语句就失败了。是否有不同的方法来进行节点的条件插入?
UPDATE
MY_DOCS
SET DOC = CASE
WHEN DOC is null THEN :DOC
ELSE XMLMODIFY(
'declare default element namespace "http://www.example.com/docs"; insert node $new as last into /Document ' ,
CAST(:NEWNODE AS XML) as "new")
END
WHERE ID = '123'
异常
对象XMLMODIFY,特定名称,在使用的语境中无效SQL代码:-390,SQL状态:42887