我需要将每个记录从表写入XML文件。我能想到以下解决方案
让数据库适配器查询表中的记录
为DB输出集合放置一个循环并调用转换(通过传递参数,通常是迭代器值)将第n条记录写入File输入变量
写入传递了动态文件名的文件(通常在表记录中使用一列值)
重复下一条记录以创建另一个文件
但我个人不喜欢这种做法,我只是想找出是否有最佳方法可以做到这一点?我必须只使用BPEL来做到这一点。
感谢并随时要求进一步澄清
答案 0 :(得分:0)
我的理解是,您不希望一次性从db中选择所有记录并迭代它以写入文件。如果是这种情况,您是否考虑过以下方法?
选择满足您选择条件的记录总数(选择(来自table1其中myCondition1的count(id))并保留 一个bpel变量,比如TOTALCNT。
声明bpel变量START = 1。
声明一个bpel变量END = 50.假设数据库中有1000条记录满足我们的条件,我们将只选择50条记录 从DB一次写入文件。
现在激活用于选择数据的选择查询(从table1中选择field1,field2,... fieldn,其中myCondition1和ROWNUM> = START AND ROWNUM< = END)。这将为您提供符合选择标准的前50条记录。 START和END将传递给 来自bpel flow的适配器。
转换后将这些记录写入文件。
点击此链接查看ROWNUM- http://www.oracle.com/technetwork/issue-archive/2006/06-sep/o56asktom-086197.html