我现在有一个XML文件里,有两个表的数据,

<RowSet>
<Row>
 <ID>5</ID>
 <NAME>A</NAME> <ID>3</ID>
 <NO>2345</NO>
</Row><Row>
  ...
</Row>
</RowSet>
其中ID,NAME为表一的两列数据,后面的ID,NO为表二的两二数据,我该如何把XML文件的数据转换到TABLE里面呢?
请赐教!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
如果一个表的数据,我是知道的,
类似代码如下:
DECLARE
  SAVCTX DBMS_XMLSTORE.ctxType;
  rows NUMBER;
  dst_loc CLOB :='';
BEGIN
 SAVCTX := DBMS_XMLSTORE.NEWCONTEXT('T_USER');
  DBMS_XMLSTORE.CLEARUPDATECOLUMNLIST(SAVCTX);
  
  DBMS_XMLSTORE.SETUPDATECOLUMN(SAVCTX, 'USER_ID');
  DBMS_XMLSTORE.SETUPDATECOLUMN(SAVCTX, 'PASSWORD');
  
  rows := DBMS_XMLSTORE.INSERTXML(SAVCTX, dst_loc);
  DBMS_OUTPUT.put_line(rows || ' rows inserted.');
    
  DBMS_XMLSTORE.CLOSECONTEXT(SAVCTX);  
END;
END;

解决方案 »

  1.   

    可以转换一下思路吗?先预处理一下你的那个xml文件,变为两个。
      

  2.   

    在你的语句里先进行XML的解析,获取第一个ROW的数据,更新到表1,第二个ROW的数据,更新到表2
      

  3.   

    我是两个表的数据在通一个ROW里面,
    另外,使用DBMS_XMLSTORE.INSERTXML(SAVCTX, dst_loc)函数的话,参数1不是整个XML吗?
    有其他插入函数可用吗?
      

  4.   

    先对xml文档解析 可以用jdom 很方便