2014-09-23 94 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並刪除第一個空格。這是最快的方式。但不是程序化的。