Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从XML格式的字符串中读取标记_Sql_Xml_Oracle - Fatal编程技术网

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

Sql 从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函数,但结果不一致,因为主机名字符串长度不断变化 你能给我一些建议让它工作吗 &

在我的过程中,我正在读取一条blob消息,在提取它之后,我将其分配给一个VARCHAR2

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问题: