从XML格式的字符串中读取标记

时间:2014-08-26 12:15:46

标签: sql xml oracle

在我的程序中我正在读取blob消息,在解压缩之后我将其分配给VARCHAR2。

既然变量如下所示(XML格式),我想读取像host这样的标记元素的值。我已经尝试使用substring函数,但结果不一致,因为主机名字符串长度一直在改变..

你能否建议我选择让这个有用??

<fault>
<id>xxxxxxxxxfc709f06870000</id>
<host>***.***.com:2222</host>
<uri>**/**/**.***</uri>
<payload><?xml version="1.0" encoding="UTF-8"?>

1 个答案:

答案 0 :(得分:1)

您应该使用xmltype而不是VARCHAR2。

val xmltype; 
host VARCHAR2;

val := xmltype(varchar2_val); 
host := val.extract('/host/text()').getStringVal()