假设我将以下 XML 数据分配给 CLOB 类型的 PL/SQL 中的局部变量,即:
l_clob := ‘<xml>
<ticket_order>
<table_no>1<table_no/>
<waiter>Jack<waiter/>
<total_people>12<total_people/>
</ticket_order>
<ticket_order>
<table_no>4<table_no/>
<waiter>Jackie<waiter/>
<total_people>3<total_people/>
</ticket_order>
<ticket_order>
<table_no>2<table_no/>
<waiter>Sally<waiter/>
<total_people>2<total_people/>
</ticket_order>
<ticket_order>
<table_no>11<table_no/>
<waiter>Mike<waiter/>
<total_people>6<total_people/>
</ticket_order>
</xml>';
因此,我不会将此 XML 存储在表列中,因为我想单独在我的 PL/SQL 包过程中进行处理。
使用上面的l_clob
变量,我然后执行以下操作:
retrieve_all_table_no(p_response => SYS.XMLTYPE.CREATEXML(l_clob));
现在在我的程序中:
retrieve_all_table_no(p_response in XMLType)
如何逐行提取其中的所有节点值<table_no>
?
同样,这不是来自表,而是在 PL/SQL 中动态完成的。
我希望能够访问每个单独的值,以便我处理,即:
1
4
2
11
我不能使用提取,因为这将连接所有值。