Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle SQL क्वेरी xpath में विशिष्ट स्थिति का उपयोग करके विशिष्ट घटना को पुनः प्राप्त करने के लिए?

यह आपकी मदद करने वाला है; फ्लैग टैग का परीक्षण शून्य मान के साथ किया जाता है। फ़ंक्शन में एक और मान जोड़ा जाना चाहिए।

 DECLARE
vs_Xml VARCHAR2(32000):= '<List>
  <Event>
    <eventTime>2016-08-03T15:41:12.000+05:30</eventTime>
    <e:PlaceHolder xmlns:e="http://dpmt.element.com">US</e:PlaceHolder>
    <e:flag xmlns:e="http://dpmt.rmg.org/pq/rs">true</e:flag>
    <e:flag1 xmlns:e="http://dpmt.rmg.org/pq/rs">false</e:flag1>
</Event>
   <Event>
     <eventTime>2016-08-01T19:41:12.000+05:30</eventTime>
   </Event>
</List>';

vx_ParameterList   XMLTYPE;
vx_Parameter       XMLTYPE;
vn_ParameterIndex  NUMBER;
vs_Key             VARCHAR2(64);
vs_XPath           VARCHAR2(255);
vs_Value           VARCHAR2(10000);
vs_Value2           VARCHAR2(10000);

BEGIN
   vx_ParameterList := xmltype(vs_Xml);
   vn_ParameterIndex := 1;
   vs_XPath := '/List/Event'; 

WHILE vx_ParameterList.existsNode(vs_XPath || '[' || vn_ParameterIndex || ']') = 1 LOOP
  vx_Parameter := vx_ParameterList.extract(vs_XPath || '[' || vn_ParameterIndex || ']');

  vs_Value := vx_Parameter.extract('//eventTime/text()').GetStringVal(); 

  SELECT  vx_Parameter.extract('//flag/text()', 'xmlns:e="http://dpmt.rmg.org/pq/rs"').GetStringVal() INTO  vs_Value2  FROM DUAL; --Null value handling
  vn_ParameterIndex := vn_ParameterIndex + 1;

  dbms_output.put_line(vs_Value ||'-' || vs_Value2);
END LOOP;

 END;
/



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. php oci_bind_by_name फ्लोट टू न्यूमेरिक

  2. R Dataframe से Oracle डेटाबेस में कई पंक्तियाँ सम्मिलित करें

  3. आप Oracle 11g में एक विभाजित तालिका को एक टेबलस्पेस से दूसरे में कैसे स्थानांतरित करते हैं?

  4. Oracle में किसी तिथि से महीने का नाम कैसे प्राप्त करें?

  5. PL/SQL पुनरावृत्ति में फ़ोन नंबरों की पहचान करें