Problema com Report e envelope soap

Oracle Application Express - web application development tool (antigamente conhecido como Oracle HTML-DB)
Responder
PaoloCemim
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 12
Registrado em: Ter, 22 Dez 2009 7:58 am
Localização: Gravataí - RS
Att, Paolo Cemim

Estou fazendo um report atraves de webservice manual, o envelope soap de resposta me devolve um arraylist e não consigo acessar os dados desse array...

Envelope SOAP de resposta :

Selecionar tudo

<env:Envelope
  xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:ns0="http://oracle.ovs.api/types/"
  xmlns:ns1="http://www.oracle.com/webservices/internal/literal">
 <env:Body>
  <ns0:queryLocalDisksResponseElement>
   <ns0:result
     xsi:type="ns1:arrayList">
    <ns1:item
      xsi:type="ns0:VirtualDisk">
     <ns0:status
       xsi:nil="1"/>
     <ns0:diskName>System</ns0:diskName>
     <ns0:priorityClass>0</ns0:priorityClass>
     <ns0:frontEnd>xvda</ns0:frontEnd>
     <ns0:virtualDiskId>269</ns0:virtualDiskId>
     <ns0:hardDiskDriver>
      <ns0:hardDriveType>auto</ns0:hardDriveType>
     </ns0:hardDiskDriver>
     <ns0:mode
       xsi:nil="1"/>
     <ns0:qosEnable>false</ns0:qosEnable>
     <ns0:sharable>false</ns0:sharable>
     <ns0:attachStatus>Attached</ns0:attachStatus>
     <ns0:comments
       xsi:nil="1"/>
     <ns0:diskSize>6205</ns0:diskSize>
     <ns0:deviceName
       xsi:nil="1"/>
     <ns0:deviceSize
       xsi:nil="1"/>
     <ns0:deviceUuid
       xsi:nil="1"/>
    </ns1:item>
   </ns0:result>
  </ns0:queryLocalDisksResponseElement>
 </env:Body>
</env:Envelope>

e como estou configurando a SQL do report:

Selecionar tudo

select 
extractValue(value(t),'/*/diskName','xmlns="http://oracle.ovs.api/types/"') "diskName"
from wwv_flow_collections c, 
      table(xmlsequence(extract(xmltype.createxml(c.clob001),'//queryLocalDisksResponseElement/result/item','xmlns="http://oracle.ovs.api/types/"'))) t 
where c.collection_name = 'RESP_LOCALDISK'
Se alguém tiver alguma experiencia ou poder indicar algum bom lugar onde possa achar essa resposta desde já agradeço!
PaoloCemim
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 12
Registrado em: Ter, 22 Dez 2009 7:58 am
Localização: Gravataí - RS
Att, Paolo Cemim

Depois de muitas tentativas o query do report que trouxe o resultado procurado foi :

Selecionar tudo

select extractValue(value(t),'/*/diskName','xmlns="http://oracle.ovs.api/types/"') "diskName"
 from wwv_flow_collections c, 
table(xmlsequence(extract(xmltype.createxml(c.CLOB001),'//queryLocalDisksResponseElement/result/*','xmlns="http://oracle.ovs.api/types/"'))) t 
where c.collection_name = 'RESP_LOCALDISK'
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 4 visitantes