Sql 从XML格式的字符串中读取标记
在我的过程中,我正在读取一条blob消息,在提取它之后,我将其分配给一个VARCHAR2Sql 从XML格式的字符串中读取标记,sql,xml,oracle,Sql,Xml,Oracle,在我的过程中,我正在读取一条blob消息,在提取它之后,我将其分配给一个VARCHAR2 val xmltype; host VARCHAR2; val := xmltype(varchar2_val); host := val.extract('/host/text()').getStringVal() 现在,由于变量如下所示(XML格式),我想读取标记元素(如host)的值。我尝试过使用substring函数,但结果不一致,因为主机名字符串长度不断变化 你能给我一些建议让它工作吗 &
val xmltype;
host VARCHAR2;
val := xmltype(varchar2_val);
host := val.extract('/host/text()').getStringVal()
现在,由于变量如下所示(XML格式),我想读取标记元素(如host)的值。我尝试过使用substring函数,但结果不一致,因为主机名字符串长度不断变化
你能给我一些建议让它工作吗
<fault>
<id>xxxxxxxxxfc709f06870000</id>
<host>***.***.com:2222</host>
<uri>**/**/**.***</uri>
<payload><?xml version="1.0" encoding="UTF-8"?>
XXXXXXXX FC709F06870000
*****.com:2222
**/**/**.***
您应该使用xmltype而不是VARCHAR2
val xmltype;
host VARCHAR2;
val := xmltype(varchar2_val);
host := val.extract('/host/text()').getStringVal()
我以前使用过此链接来帮助解析XML并将值插入表中:看看SO问题: