체크 UPDATEXML의 orace 기능 (https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions205.htm)
with xml as (select '<?xml version="1.0" encoding="WINDOWS-1252"?>
<View>
<ReportValues>
<SalaryValue variable="HR" value="999"/>
<SalaryValue variable="floor" value="20"/>
</ReportValues>
</View>' xml from dual)
select updatexml(xmltype.createxml(xml.xml),'/View/ReportValues/SalaryValue[@variable="HR"]/@value','666' )
from xml
이 창에서 변수 값 :
그것은 다음과 같이 보일 수 있습니다 "바닥"변수에 대한 617,451,515,
<?xml version="1.0" encoding="WINDOWS-1252"?>
<View>
<ReportValues>
<SalaryValue variable="HR" value="666"/>
<SalaryValue variable="floor" value="20"/>
</ReportValues>
</View>
: @의 대답은 Анатолий Предеин가 10g 및 11g에 확실히 올바른 동안
select updatexml(x,'/View/ReportValues/SalaryValue[@variable="floor"]/@variable','SALES' )
from (
select updatexml(xmltype.createxml(xml.xml),'/View/ReportValues/SalaryValue[@variable="HR"]/@value','666' ) x
from xml)
여러분 모두 감사합니다. 위에 제공된 솔루션 중 하나를 사용했습니다. – user3588480