1. 概述
1.1 问题描述
循环容器已经介绍了循环容器的基本功能。
如果用户采用 SQL 单条件查询语句每次只能取一条数据,希望能将数据库中满足数据库表「循环容器取数表」中title的数据一条条依次取出并落库。
1.2 解决思路
此时需要将「循环容器取数表」数据库表中 title 取出作为参数,然后将该参数写入 SQL 语句中,通过循环容器一一将参数值赋给 SQL 查询条件,一条条取出数据到指定数据库。
FineDataLink 中的数据处理过程,详情参见:https://demo.finedatalink.com/ 「循环容器示例2」
2. 操作步骤
2.1 设置参数
1)新建一个定时任务,将「参数赋值」节点拖入到设计界面。取出「循环容器取数表」数据库表中 title 数据,数据源选择MySQL的fdl_demotest数据连接,选择demotest数据库的「循环容器取数报表」如下图所示:
点击「数据预览」,如下图所示:
2)将 title 设置为参数,如下图所示:
注:调试值可点击参数预览生成,在此例中SQL条件语句的赋值为一个值,所以调试值只能为一个值,若参数预览生成多值,请删除多余值
注:循环容器内参数规则详情参见:容器内参数规则
2.2 引入循环容器
由于数据同步-数据库SQL取数需要将参数一条条赋值给SQL查询条件,因此新增「循环容器」节点,将「循环容器」节点与「参数赋值」节点相连,如下图所示:
2.3 数据库取数并落库
为了将数据库中的数据取出,需要将「数据同步」节点拖入到「循环容器」中,设置数据来源,编写SQL查询语句,在条件中写入参数${title},详情参见:数据同步-数据库表 和 参数功能-参数输出,如下图所示:
注:SQL 条件语句中 ${title} 不带引号,因步骤 2.1 2)中勾选了闭包
然后点击「数据预览」查看取出数据,如下图所示:
点击「数据去向」设置取出的数据的写入数据表,如下图所示:
2.4 参数绑定循环容器
设置循环遍历对象,选择 2.1节设置的 title 参数,在数据同步数据库取数时,循环容器会一一将参数值赋给SQL条件参数,如下图所示:
「循环容器」节点设置项详情参见:循环容器逻辑说明
2.5 运行任务
点击右上角的「保存并运行」。如下图所示:
运行成功后,可看到数据库中新增了数据表,将数据库表「循环容器取数表」中 title 对应的数据从数据库一条一条循环取出并同步到数据库的「循环容器表」中。前两次循环执行及最终结果如下图所示: