历史版本30 :SQL脚本 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

[helpvideo]8620[/helpvideo]

1.1 版本

FineDataLink 版本功能变动
1.0-
4.1.3脚本配置Tab下,数据源是 MySQL、Oracle、SQLServer 时,可调用存储过程
4.1.11.2

支持执行单条和多条SQL语句

1.2 应用场景

当用户需要对数据库中的数据进行处理时,例如创建、更新、删除、读取、汇总这样的操作,此可以通过「SQL脚本」节点实现。

32.png

2. 功能说明编辑

2.1 数据处理和数据增删改

可通过 SQL 语句对数据进行处理。

选择数据源类型和数据连接后,写 SQL 语句对数据进行处理即可。需注意的是:

  • SQL 语句的语法要按照连接的数据库类型来写

  • 可以在 SQL 语句中引用 自定义的参数 或上游节点的参数赋值,进行数据库增删改,例如:注:SQL 脚本中引用参数方式详情参见:使用参数说明

1702889254370234.png

 注:上游节点生成参数时,如果已添加闭包符,则引用参数时无需再加引号 

2.2 调用存储过程

数据源是 MySQL、Oracle、SQLServer 时,可调用存储过程。详情请参见:定时任务调用数据库存储过程

2.3 创建存储过程

4.1.11.2 及之后的版本支持使用 SQL 脚本执行单条SQL和多条SQL,创建存储过程,输入创建的存储过程,并设置SQL执行方式为按单一语句执行,如下图所示:

SQL执行方式说明
按单一语句执行对SQL脚本不进行切割发送到数据库进行执行
按多条SQL执行(以分号作为分隔符)系统自动切割SQL脚本语句后批量提交给数据库进行处理

注:这里仅支持创建语句,不支持 delimiter 等语句。

CREATE PROCEDURE demotest.Deletemoney1(IN nu INT)
BEGIN
    DELETE FROM  demotest.SS订单 WHERE `应付金额` = nu;
    select * from demotest.SS订单;
END

运行任务,即可看到创建的存储过程,如下图所示:

2. 示例编辑

在本示例中,我们在数据开发中使用「SQL脚本」节点创建两张表,插入数据并将其中一张表的数据汇总处理后存到另一张表里去。

2.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,节点名称修改为「创建数据库表」。如下图所示:

2.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插入数据」。如下图所示:

2.3 数据汇总

1)再拖入一个SQL脚本节点,如下图设置,SQL 语句的作用是将 order1 的数据分类汇总后插入到 order2 中。如下图所示:

SQL 语句为:

insert into order2
select ID,sum(inventory) from order1 group by ID

2)点击节点信息Tab,节点名称修改为汇总插入order2」。如下图所示:

2.4 运行任务

保存后,点击「运行」按钮,运行成功后,日志如下图所示:

运行成功后,可以看到数据库中多了两张表:

order1:

1717730787757939.png

order2:

1717730819842974.png

2.5 发布任务

运行成功后,点击发布,使任务进入生产模式。如下图所示:

注:可以在生产模式下设置 任务执行频率

3. 节点支持的SQL语法编辑

注:4.1.11.2 及以后的版本「SQL 脚本」节点支持 MERGE 语句。

类型语法作用
数据处理insert
插入数据
delete删除数据
update修改数据
select查询数据
数据库表操作create table创建数据库表
drop table删除数据库表
存储过程语句-