0
在下面的代码中,首先需要添加一个元素,在代码的其余部分创建或更新一个名为t的属性。一次执行多个修改操作
declare
LOG_REFERENCE xmltype:=xmltype('<log />');
begin
select XMLQuery('
copy $p := $p1 modify insert node <update data="{$p2}" />
as last into $p/log
return $p
' PASSING LOG_REFERENCE AS "p1", to_char(systimestamp) AS "p2" RETURNING CONTENT)
INTO LOG_REFERENCE from dual;
select XMLQuery('
copy $i := $p1 modify(
if (fn:exists($i/log[1]/@t)) then (
replace value of node $i/log[1]/@t with $p2
) else (
insert node attribute t {$p2} into $i/log[1]
)
)
return $i
' PASSING LOG_REFERENCE AS "p1", to_char(systimestamp) AS "p2" RETURNING CONTENT)
INTO LOG_REFERENCE from dual;
dbms_output.PUT_LINE(LOG_REFERENCE.getClobVal());
end;
我的问题是,我想参加这两项修改成一个XQuery的呼叫这样
declare
LOG_REFERENCE xmltype:=xmltype('<log />');
begin
select XMLQuery('
copy $p := $p1 modify(
insert node <update data="{$p2}" />
as last into $p/log
)
copy $i := $p modify(
if (fn:exists($i/log[1]/@t)) then (
replace value of node $i/log[1]/@t with $p2
) else (
insert node attribute t {$p2} into $i/log[1]
)
)
return $i
' PASSING LOG_REFERENCE AS "p1", to_char(systimestamp) AS "p2" RETURNING CONTENT)
INTO LOG_REFERENCE from dual;
dbms_output.PUT_LINE(LOG_REFERENCE.getClobVal());
end;
在我的头上,这是正确的,但很明显,我在想念的东西。或者它不能在oracle xquery中完成?
其被赋予了错误消息:
ORA-19114: - : LPX-00801:XPST0003解析所述XQuery表达式时的错误的XQuery语法错误在 '复制' 7拷贝$ I:= $ P修改( -^ORA-06512:EM线5