我有一个带varchar列的表,其数据如下:
"<tasa>
<parametros>
<parametro>
<nombre>ea</nombre>
<valor>35</valor>
</parametro>
</parametros>
<valorTasa>3.15</valorTasa>
</tasa>"
Run Code Online (Sandbox Code Playgroud)
我需要能够提取valorTasa标记之间的值,但不知道如何使用该函数,并且无法访问oracle文档.
我正在尝试类似的东西
select regexp_substr(field, '<valorTasa>[0-9]{0-3}</valorTasa') from dual;
Run Code Online (Sandbox Code Playgroud)
没有结果.任何帮助将不胜感激
更简单的方法是使用extractvalue函数来提取节点的值.
-- sample of data
SQL> with t1(col) as(
2 select '<tasa>
3 <parametros>
4 <parametro>
5 <nombre>ea</nombre>
6 <valor>35</valor>
7 </parametro>
8 </parametros>
9 <valorTasa>3.15</valorTasa>
10 </tasa>'
11 from dual
12 )
13 select extractvalue(xmltype(col), '/tasa/valorTasa') as res
14 from t1
15 /
RES
-------
3.15
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4391 次 |
| 最近记录: |