反馈已提交

网络繁忙

SQL脚本

  • 文档创建者:Wendy123456
  • 历史版本:38
  • 最近更新:Roxy 于 2024-12-20
  • 1. 概述

    1.1 版本

    FineDataLink 版本功能变动
    1.0-
    4.1.3脚本配置Tab下,数据源是 MySQL、Oracle、SQLServer 时,可调用存储过程
    4.1.11.2
    • 支持设置SQL执行方式,可以按照单条语句执行,同时支持SQL语句中增加注释不影响SQL执行

    • HP Vertica 和 GaussDB 200,可调用存储过程

    4.1.12.2DB2 和 SAP HANA支持调用无返回值的存储过程

    1.2 应用场景

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

    32.png

    2. 功能说明

    2.1 数据处理和数据增删改

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

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

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

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

    1702889254370234.png

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

    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:

    1717730787757939.png

    order2:

    1717730819842974.png

    3.5 发布任务

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

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

    4. 节点支持的SQL语法

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

    类型语法作用
    数据处理insert
    插入数据
    delete删除数据
    update修改数据
    select查询数据
    数据库表操作create table创建数据库表
    drop table删除数据库表
    存储过程语句-(按单一语句执行时,不支持 delimiter 等命令分隔符语句)


    附件列表


    主题: 数据开发-定时任务
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持