1. 概述
1.1 版本
FineDataLink 版本 | 功能变动 |
---|---|
1.0 | - |
4.1.3 | 脚本配置Tab下,数据源是 MySQL、Oracle、SQLServer 时,可调用存储过程 |
4.1.11.2 |
|
4.1.12.2 | DB2 和 SAP HANA支持调用无返回值的存储过程 |
1.2 应用场景
当用户需要对数据库中的数据进行处理时,例如创建、更新、删除、读取、汇总这样的操作,此可以通过「SQL脚本」节点实现。
2. 功能说明
2.1 数据处理和数据增删改
可通过 SQL 语句对数据进行处理。
选择数据源类型和数据连接后,写 SQL 语句对数据进行处理即可。需注意的是:
注:上游节点生成参数时,如果已添加闭包符,则引用参数时无需再加引号。
2.2 调用存储过程
数据源是 MySQL、Oracle、SQLServer、HP Vertica、GaussDB 200、DB2、SAP HANA 时,可调用存储过程。详情请参见:定时任务调用数据库存储过程
2.3 设置 SQL 执行方式
4.1.11.2 及之后的版本支持使用 SQL 脚本执行单条SQL和多条SQL,创建存储过程,输入创建的存储过程,并设置SQL执行方式为按单一语句执行,如下图所示:
注:可以按照单条语句执行,同时支持 SQL 语句中增加注释不影响 SQL 执行。
SQL执行方式 | 说明 |
---|---|
按单一语句执行 | 对SQL脚本不进行切割发送到数据库进行执行 注1:这里仅支持创建存储过程语句,不支持 delimiter 等命令分隔符语句 注2:不支持oracle的存储过程 |
按多条SQL执行(以分号作为分隔符) 注:SQL 脚本的注释中不能包含分号,有分号会导致注释逻辑失效,将报错 SQL 无效 | 系统自动切割SQL脚本语句后批量提交给数据库进行处理 |
CREATE PROCEDURE demotest.Deletemoney1(IN nu INT)
BEGIN
DELETE FROM demotest.SS订单 WHERE `应付金额` = nu;
select * from demotest.SS订单;
END
运行任务,即可看到创建的存储过程,如下图所示:
3. 示例
在本示例中,我们在数据开发中使用「SQL脚本」节点创建两张表,插入数据并将其中一张表的数据汇总处理后存到另一张表里去。
3.1 创建数据库表
1)新建定时任务,设置位置和名称,进入「开发模式」。如下图所示:
2)拖入「SQL脚本」节点,如下图设置,SQL 语句的作用是创建两个表 order1 和 order2 ,且它们有相同的字段 ID 和 inventory 。如下图所示:
SQL 语句为:
CREATE table if not exists order1
(
ID int,
inventory int
);
create table if not exists order2
(
ID int,
inventory int
);
3)点击「节点信息」Tab,节点名称修改为「创建数据库表」。如下图所示:
3.2 表中插入数据
1)再拖入一个「SQL脚本」节点,如下图设置,SQL 语句的作用是将 9 条数据插入到表 order1 中去。如下图所示:
SQL 语句为:
insert into
order1 (id, inventory)
values
(1, 20);
insert into
order1 (id, inventory)
values
(1, 21);
insert into
order1 (id, inventory)
values
(1, 22);
insert into
order1 (id, inventory)
values
(2, 23);
insert into
order1 (id, inventory)
values
(2, 24);
insert into
order1 (id, inventory)
values
(2, 25);
insert into
order1 (id, inventory)
values
(3, 26);
insert into
order1 (id, inventory)
values
(3, 27);
insert into
order1 (id, inventory)
values
(3, 28);
2)点击「节点信息」Tab,节点名称修改为「order1插入数据」。如下图所示:
3.3 数据汇总
1)再拖入一个「SQL脚本」节点,如下图设置,SQL 语句的作用是将 order1 的数据分类汇总后插入到 order2 中。如下图所示:
SQL 语句为:
insert into order2
select ID,sum(inventory) from order1 group by ID
2)点击「节点信息」Tab,节点名称修改为「汇总插入order2」。如下图所示:
3.4 运行任务
保存后,点击「运行」按钮,运行成功后,日志如下图所示:
运行成功后,可以看到数据库中多了两张表:
order1:
order2:
3.5 发布任务
运行成功后,点击发布,使任务进入生产模式。如下图所示:
注:可以在生产模式下设置 任务执行频率