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

XMLtable với Oracle 11g

Hãy thử điều này:

select      X.COUNTRYNAME, Y.STATENAME
from        XMLTEMP
           ,xmltable('/countries/country'
                     passing MYDOC
                     columns COUNTRYNAME varchar2(20) path './name', 
                             STATES xmltype path './states') X,
            xmltable('/states/state/name' passing X.STATES 
                    columns STATENAME varchar2(20) path '.') (+) Y

Bởi vì bạn có nhiều trạng thái, bạn nên tham gia vào một bảng xml khác. Vì một số quốc gia không có tiểu bang nên nó cần phải là một liên kết bên ngoài bên trái. Tôi đang sử dụng phương thức cũ của (+) vì tôi đang thử điều này vào lúc 10g và có vẻ như có sự cố khi sử dụng left outer join trong 10g nhưng rõ ràng là nó sẽ ổn trong 11g .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chính xác thì dấu ngoặc kép xung quanh tên bảng làm gì?

  2. Cấu trúc cây trong sql trong Oracle. Cách hiển thị cây, nút con và nút cha trong SQL Oracle

  3. Cách lấy mục lớn thứ hai hoặc lớn thứ ba từ một bảng

  4. Sự khác biệt chính giữa Varchar2 và char là gì

  5. Phiên không hoạt động trong Oracle của JDBC