Oracle的XML数据库实现有一些令人困惑的令人眼花缭乱的选项,并且在任何给定的场景中并不总是清楚(至少对我而言).在这种特殊情况下,你想要的是
XMLTable(),它将XQuery变成一组行.
首先我们创建一个表.
sql> create table t23
2 (field01 number
3,field02 number
4,field03 char(1)
5 )
6 /
Table created.
sql>
然后我们填充它…
sql> declare
2 x varchar2(2000) := '
3
4
5
6 ';
7 begin
8 insert into t23
9 select *
10 from xmltable
11 ( '/ArrayOfRecords/Record'
12 passing xmltype (x)
13 columns f1 number path '@Field01'
14,f2 number path '@Field02'
15,f3 char(1) path '@Field03'
16 )
17 ;
18 end;
19 /
PL/sql procedure successfully completed.
sql>
最后我们证明它有效……
sql> select * from t23
2 /
FIELD01 FIELD02 F
---------- ---------- -
130 1700 C
131 1701 C
132 1702 C
sql>