2014-09-23 99 views
0

我在表中有500万行,我的要求是将所有行写入xml文件。 截至目前,我正在将10000行写入一个xml文件,依此类推。(串行)它需要花费很多时间来编写。有没有办法做到这一点并行。Oracle 11g PL/SQL并行执行写入xml文件

如果可能,我想在给定时间同时写入10000个行到5个文件, 每次必须以5个并行进程(每个10000行)处理5个文件时,如果任何进程完成其任务,必须将下一个10000行选入另一个进程。

+0

由于11.2,您可以使用dbms_parallel_execute到chunkify你的工作量:http://docs.oracle.com/cd/E11882_01/appdev.112/e40758/d_parallel_ex.htm#ARPLS233 – 2014-09-23 21:04:51

+0

我想从Oracle数据库架构只能这样做。 – user3779043 2014-09-24 10:23:49

回答

0

我认为你必须用VArchar2(2000)列创建表(FOR_XML),并使用loop-for将这500万行分组并按照尽可能少的行数排序写入Varchar2(2000)行。然后从该表中选择并写入一个xml文件。

第二种解决方案:创建xml文件,用写字板打开,然后select * from FOR_XML,然后点击复制到excel(xlsx),然后从excel这一行复制到没有头的wordpad中。保存并重新打开xml并删除第一个空格。这是最快的方式。但不是程序化的。