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

xmltype oracle से खाली टैग हटाएं

DELETEXML का उपयोग करें और XPath की तलाश करें //*[not(text())][not(*)] उन तत्वों को खोजने के लिए जिनमें कोई पाठ नहीं है और कोई बच्चा नहीं है:

SQL Fiddle

Oracle 11g R2 स्कीमा सेटअप :

CREATE TABLE table_name ( xml ) AS
SELECT XMLTYPE( '<MESSAGE>
<LOCATIONS>
  <LOCATION_ID>9999</LOCATION_ID>
  <LOC_TYPE>S</LOC_TYPE>
  <NAME>Test Location</NAME> 
  <PHONE_NUM>08 </PHONE_NUM>
   <LAST_MODIFIED_BY/>
   <LAST_MODIFIED_DATE/>
   <POS_CODE/>
</LOCATIONS>
</MESSAGE>' ) FROM DUAL;

क्वेरी 1 :

SELECT DELETEXML(
         xml,
         '//*[not(text())][not(*)]'
       ).getStringVal()
FROM   table_name

परिणाम :

|                                                                                            DELETEXML(XML,'//*[NOT(TEXT())][NOT(*)]').GETSTRINGVAL() |
|-----------------------------------------------------------------------------------------------------------------------------------------------------|
| <MESSAGE><LOCATIONS><LOCATION_ID>9999</LOCATION_ID><LOC_TYPE>S</LOC_TYPE><NAME>Test Location</NAME><PHONE_NUM>08 </PHONE_NUM></LOCATIONS></MESSAGE> |


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ऑरैकल में उपयोगकर्ता दृश्यों के लिए कॉलम नाम सूचीबद्ध करें

  2. कैसे हल करें कुछ मॉड्यूल oracledb को हल करने में असमर्थ?

  3. Oracle एपेक्स में फ़ाइलें आयात करना wwv_flow_files का उपयोग करना

  4. .NET कोड से कनेक्ट करते समय Oracle कनेक्शन ओपन एरर

  5. एनवीएल हमेशा दूसरे पैरामीटर का मूल्यांकन क्यों करता है