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

ऑरैकल में xmltable का उपयोग कैसे करें?

action और object आपके उदाहरण पर समान स्तर पर नहीं हैं, इसलिए आपकी क्वेरी को अतिरिक्त चरण करने होंगे। यहां एक उदाहरण दिया गया है:

SQL> create table users (id number, profile xmltype);

Table created.

SQL> insert into users values (1, XMLTYPE('<profile>
  2      <subject>I
  3         <action>like
  4             <object>sports</object>
  5             <object>music</object>
  6         </action>
  7      </subject>
  8  </profile>'));

1 row created.

SQL> select u.id, x.action, x.object.getStringVal()
  2    from users u,
  3         XMLTABLE('/profile/subject/action'
  4                  passing u.profile
  5                  columns action VARCHAR2(30) PATH 'text()',
  6                          object XMLTYPE PATH 'object') x;

ID  ACTION  X.OBJECT.GETSTRINGVAL()
--- ------- --------------------------------------------------
1   like    <object>sports</object> <object>music</object>

जैसा कि आप देख सकते हैं कि हमें नोड मिल गया है, वास्तव में वह नहीं जो आप चाहते हैं इसलिए हम एक XMLTABLE जोड़ते हैं :

SQL> select u.id, x.action, y.object
  2    from users u,
  3         XMLTABLE('/profile/subject/action'
  4                  passing u.profile
  5                  columns action VARCHAR2(30) PATH 'text()',
  6                          object XMLTYPE PATH 'object') x,
  7         XMLTABLE('/object'
  8                  passing x.object
  9                  columns object VARCHAR2(30) PATH '.') y;

ID  ACTION  OBJECT
--- ------- -------
1   like    sports
1   like    music



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पंक्तियों में विभाजित स्ट्रिंग Oracle SQL

  2. आदेश के साथ Oracle सम्मिलित करें

  3. क्या ओरेकल में पैरामीटर के रूप में टेबल नाम पास करना संभव है?

  4. जावा JDBC - tnsnames.ora का उपयोग करके Oracle से कैसे जुड़ें?

  5. oracle 12c - किसी वर्ण की अंतिम घटना के बाद स्ट्रिंग का चयन करें