ओरेकल के एक्सएमएल डीबी कार्यान्वयन में विकल्पों की एक स्पष्ट रूप से चौंकाने वाली संख्या है, और यह हमेशा स्पष्ट नहीं होता है (कम से कम मेरे लिए) जो किसी भी परिदृश्य में लागू होता है। इस विशेष मामले में आप जो चाहते हैं वह है 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) := '<ArrayOfRecords>
3 <Record Field01="130" Field02="1700" Field03="C" />
4 <Record Field01="131" Field02="1701" Field03="C" />
5 <Record Field01="132" Field02="1702" Field03="C" />
6 </ArrayOfRecords>';
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>