【问题标题】:Writing each record to a file bpel file adapter将每条记录写入文件 bpel 文件适配器
【发布时间】:2017-04-14 00:27:42
【问题描述】:

我需要将表中的每条记录写入 XML 文件。我可以想到以下解决方案

有一个数据库适配器来查询表中的记录
为 DB 输出集合放置一个循环并调用转换(通过传递参数,通常是迭代器值)以将第 n 条记录写入文件输入变量
用传递的动态文件名写入文件(通常用表记录中的列的值)
重复下一条记录以创建另一个文件

但我个人不喜欢这种方法,我只是想找出是否有任何最好的方法可以做到这一点?我必须只使用 BPEL 来执行此操作。

感谢并随时要求进一步澄清

【问题讨论】:

    标签: xml soa bpel


    【解决方案1】:

    我的理解是,您不希望一次性从 db 中选择所有记录并对其进行迭代以写入文件。如果是这种情况,您是否考虑过以下方法?

    1. 选择满足您的选择条件的记录总数(select (count(id) from table1 where myCondition1))并将其保留在 一个 bpel 变量,比如 TOTALCNT。

    2. 声明 bpel 变量 START=1。

    3. 声明一个 bpel 变量 END = 50。假设 DB 中有 1000 条记录满足我们的条件,我们将只选择 50 条记录 一次从数据库写入文件。

    4. 现在触发选择查询以选择数据(从 table1 中选择 field1,field2,... fieldn 其中 myCondition1 AND ROWNUM >=START AND ROWNUM

    5. 在转换后将这些记录写入文件。

    6. 检查是否 END = TOTALCNT。

    查看此链接中的 ROWNUM-http://www.oracle.com/technetwork/issue-archive/2006/06-sep/o56asktom-086197.html

    【讨论】:

    • 嗨哈宾,感谢您的回复。但我的要求是将每条记录写入一个新文件。我想避免频繁的数据库命中,所以我想一次性选择所有记录(最大记录将小于 100),然后将每条记录写入一个新文件。所以最后我将有 100 个文件用于 100 条记录。
    猜你喜欢
    • 2021-02-28
    • 1970-01-01
    • 2020-03-18
    • 2017-07-02
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    相关资源
    最近更新 更多