行使oracle理会器从XML获取First Occurred值
发布时间:2021-01-13 07:06:02 所属栏目:站长百科 来源:网络整理
导读:我不是Oracle的专家,但根据要求,我使用Oracle Parser解析Xml.对于下面列出的xml即 ?xml version="1.0" encoding="iso-8859-1" ?SearchOutputrowArray Row cellArray Cell columnId1/columnId valueArray Value valueIR000024575453/value /Value /valueArray
|
副标题[/!--empirenews.page--]
我不是Oracle的专家,但根据要求,我使用Oracle Parser解析Xml.对于下面列出的xml即 <?xml version="1.0" encoding="iso-8859-1" ?>
<SearchOutput>
<rowArray>
<Row>
<cellArray>
<Cell>
<columnId>1</columnId>
<valueArray>
<Value>
<value>IR000024575453</value>
</Value>
</valueArray>
</Cell>
<Cell>
<columnId>5</columnId>
<valueArray>
<Value>
<value>AZ12604823-001</value>
</Value>
</valueArray>
</Cell>
<Cell>
<columnId>2</columnId>
<valueArray>
<Value>
<value>IT06686</value>
</Value>
</valueArray>
</Cell>
<Cell>
<columnId>9</columnId>
<valueArray>
<Value>
<value>Hu Mics Metab K</value>
</Value>
</valueArray>
</Cell>
<Cell>
<columnId>8</columnId>
<valueArray>
<Value>
<value>2006-06-21</value>
</Value>
</valueArray>
</Cell>
<Cell>
<columnId>7</columnId>
<valueArray>
<Value>
<value>2006-07-27</value>
</Value>
</valueArray>
</Cell>
</cellArray>
</Row>
</rowArray>
</SearchOutput>
我使用过该方法,其中l_xmlclob具有CLOB数据类型并在上面分配了xml. FOR r IN ( SELECT rownum rn,cells
FROM xmltable('/SearchOutput/rowArray/Row' passing XMLTYPE(l_xmlclob)
columns CELLS XMLTYPE PATH './cellArray')
)
LOOP
DBMS_OUTPUT.PUT_LINE('Row: '||r.rn);
FOR c IN ( SELECT colid,colval
FROM xmltable('/cellArray/Cell' passing r.cells
columns COLID NUMBER PATH './columnId',COLVAL VARCHAR(20) PATH './valueArray/Value/value')
)
LOOP
DBMS_OUTPUT.PUT_LINE('colid,col value: '||c.colid||','||c.colval);
END LOOP;
END LOOP;
它的工作正常,它的输出就像 Row: 1 colid,col value: 1,IR000024575453 colid,col value: 5,AZ12604823-001 colid,col value: 2,IT06686 colid,col value: 9,Hu Mics Metab K colid,col value: 8,2006-06-21 colid,col value: 7,2006-07-27 但是如果在xml中一个接一个地存在两个值并且我想仅选择第一个出现,即下面的xml,则会出现问题 <?xml version="1.0" encoding="iso-8859-1" ?>
<SearchOutput>
<rowArray>
<Row>
<cellArray>
<Cell>
<columnId>1</columnId>
<valueArray>
<Value>
<value>Uganda</value>
</Value>
<Value>
<value>Italy</value>
</Value>
</valueArray>
</Cell>
<Cell>
<columnId>5</columnId>
<valueArray>
<Value>
<value>AZ12604823-001</value>
</Value>
</valueArray>
</Cell>
<Cell>
<columnId>2</columnId>
<valueArray>
<Value>
<value>IT06686</value>
</Value>
</valueArray>
</Cell>
<Cell>
<columnId>9</columnId>
<valueArray>
<Value>
<value>Hu Mics Metab K</value>
</Value>
</valueArray>
</Cell>
<Cell>
<columnId>8</columnId>
<valueArray>
<Value>
<value>2006-06-21</value>
</Value>
</valueArray>
</Cell>
<Cell>
<columnId>7</columnId>
<valueArray>
<Value>
<value>2006-07-27</value>
</Value>
<Value>
<value>2012-02-27</value>
</Value>
</valueArray>
</Cell>
</cellArray>
</Row>
</rowArray>
</SearchOutput>
(编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

