Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

làm thế nào để sử dụng xmltable trong oracle?

actionobject trên ví dụ của bạn không cùng cấp, vì vậy truy vấn của bạn phải thực hiện các bước bổ sung. Đây là một ví dụ:

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>

Như bạn có thể thấy, chúng tôi có nút, không thực sự như những gì bạn muốn, vì vậy chúng tôi thêm một 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. Làm thế nào tôi có thể nhận được số ngày giữa 2 ngày trong Oracle 11g?

  2. Đang thoát các ký tự đại diện trong LIKE

  3. Làm thế nào để trả về số giây trước nửa đêm trong cơ sở dữ liệu Oracle

  4. Bộ điều hợp mạng không thể thiết lập kết nối khi kết nối với Oracle DB

  5. Làm thế nào để kiểm tra một Thủ tục được Lưu trữ trong Oracle với kiểu trả về RefCursor?