支持执行单条和多条SQL语句
HP Vertica 和 GaussDB 200,可调用存储过程
当用户需要对数据库中的数据进行处理时,例如创建、更新、删除、读取、汇总这样的操作,此可以通过「SQL脚本」节点实现。
可通过 SQL 语句对数据进行处理。
选择数据源类型和数据连接后,写 SQL 语句对数据进行处理即可。需注意的是:
SQL 语句的语法要按照连接的数据库类型来写
可以在 SQL 语句中引用 自定义的参数 或上游节点的参数赋值,进行数据库增删改,例如:注:SQL 脚本中引用参数方式详情参见:使用参数说明
注:上游节点生成参数时,如果已添加闭包符,则引用参数时无需再加引号。
数据源是 MySQL、Oracle、SQLServer、HP Vertica、GaussDB 200、DB2、SAP HANA 时,可调用存储过程。详情请参见:定时任务调用数据库存储过程
4.1.11.2 及之后的版本支持使用 SQL 脚本执行单条SQL和多条SQL,创建存储过程,输入创建的存储过程,并设置SQL执行方式为按单一语句执行,如下图所示:
对SQL脚本不进行切割发送到数据库进行执行
注1:这里仅支持创建存储过程语句,不支持 delimiter 等命令分隔符语句
注2:不支持oracle的存储过程
按多条SQL执行(以分号作为分隔符)
注:SQL 脚本的注释中不能包含分号,有分号会导致注释逻辑失效,将报错 SQL 无效
CREATE PROCEDURE demotest.Deletemoney1(IN nu INT)BEGIN DELETE FROM demotest.SS订单 WHERE `应付金额` = nu; select * from demotest.SS订单;END
运行任务,即可看到创建的存储过程,如下图所示:
在本示例中,我们在数据开发中使用「SQL脚本」节点创建两张表,插入数据并将其中一张表的数据汇总处理后存到另一张表里去。
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,节点名称修改为「创建数据库表」。如下图所示:
1)再拖入一个「SQL脚本」节点,如下图设置,SQL 语句的作用是将 9 条数据插入到表 order1 中去。如下图所示:
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插入数据」。如下图所示:
1)再拖入一个「SQL脚本」节点,如下图设置,SQL 语句的作用是将 order1 的数据分类汇总后插入到 order2 中。如下图所示:
insert into order2select ID,sum(inventory) from order1 group by ID
2)点击「节点信息」Tab,节点名称修改为「汇总插入order2」。如下图所示:
保存后,点击「运行」按钮,运行成功后,日志如下图所示:
运行成功后,可以看到数据库中多了两张表:
order1:
order2:
运行成功后,点击发布,使任务进入生产模式。如下图所示:
注:可以在生产模式下设置 任务执行频率
注:4.1.11.2 及以后的版本「SQL 脚本」节点支持 MERGE 语句。
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙