最好用oracle自带的parse xml package

解决方案 »

  1.   

    with system_config_info as(
    select xmltype('<?xml version="1.0" encoding="gb2312"?>
    <Xml_Value> <value rdv="9">EXAM</value> 
                <value rdv="9">LIS</value> 
                <value rdv="9">ECG</value> 
                <value rdv="1">EMR</value>  
    </Xml_Value>') xml_value from dual)
    SELECT extractvalue(value(t),'value/@rdv'),extractValue(value(t),'value')
     FROM system_config_info,
          TABLE( xmlsequence ( extract(xml_value,  '/Xml_Value/value' ) )
               ) t
      

  2.   


    --参考此sql:
    SQL> SELECT EXTRACTVALUE(x, '/Card/cd/@rdv') as pro
      2    FROM (SELECT XMLTYPE('<Card><cd rdv="7">小S</cd></Card>') x FROM dual);
     
    PRO
    --------------------------------------------------------------------------------
    7
    --@方式取属性