data
-----------------
<row id='1'><a4 m='86'>852</a4>
<a4 m='86' s='2'>852</a4>
<a4 m='87'>555</a4><a4 m='87' s='2'>666</a4>
<a4 m='88'>55555</a4><a4 m='88' s='2'>66666</a4>
<a4 m='89'>999</a4><a4 m='89' s='2'>999</a4>
<a4 m='86'>852</a4><a4 m='86' s='3'>852</a4>
<a4 m='87'>555</a4><a4 m='87' s='3'>333</a4>
<a4 m='88'>55555</a4><a4 m='88' s='3'>33333</a4>
<a4 m='89'>999</a4><a4 m='89' s='3'>999</a4>
<a5>4_ABCDFFFF.02_XXX_0</a5>
</row>
<row id='2'><a4 m='86'>852</a4>
<a4 m='86' s='2'>852</a4>
<a4 m='87'>555</a4><a4 m='87' s='2'>666</a4>
<a4 m='88'>55555</a4><a4 m='88' s='2'>66666</a4>
<a4 m='89'>999</a4><a4 m='89' s='2'>999</a4>
<a4 m='86'>852</a4><a4 m='86' s='3'>852</a4>
<a4 m='87'>555</a4><a4 m='87' s='3'>333</a4>
<a4 m='88'>55555</a4><a4 m='88' s='3'>33333</a4>
<a4 m='89'>999</a4><a4 m='89' s='3'>999</a4>
<a5>4_ABCDFFFF.02_XXX_ABC_MN_0</a5>
</row>
<row id='3'><a4 m='86'>852</a4>
<a4 m='86' s='2'>852</a4>
<a4 m='87'>555</a4><a4 m='87' s='2'>666</a4>
<a4 m='88'>55555</a4><a4 m='88' s='2'>66666</a4>
<a4 m='89'>999</a4><a4 m='89' s='2'>999</a4>
<a4 m='86'>852</a4><a4 m='86' s='3'>852</a4>
<a4 m='87'>555</a4><a4 m='87' s='3'>333</a4>
<a4 m='88'>55555</a4><a4 m='88' s='3'>33333</a4>
<a4 m='89'>999</a4><a4 m='89' s='3'>999</a4>
<a5>0_dfeddfdfdfdfsd.02_feggx_999</a5>
</row>
UPDATE tbl
SET XMLCOL = XMLTYPE(
REPLACE(
XMLCAST(XMLQUERY('/row/a4 m='87'/text()' PASSING XMLCOL RETURNING CONTENT) AS VARCHAR(8)),
'20180102,'20180101'
)
)
where XMLCAST(XMLQUERY('/row/a4 m='87'/text()' PASSING XMLCOL RETURNING CONTENT) AS VARCHAR(8))='20180102'
How can i extract the node value and pass to the 1st parameter of replace function? as i am getting error for the above sql using Oracle 12c.