how to use xmltable in oracle? how to use xmltable in oracle? oracle oracle

how to use xmltable in oracle?


action and object on your example aren't on the same level, so your query has to perform additional steps. Here's an example:

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>

As you can see we got the node, not really what you want so we add an 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    sports1   like    music