使用Kettle定时调度存储过程

942 阅读1分钟

环境:Oracle + Kettle

1.建表

CREATE TABLE T_R_TEST(P_DATE DATE,P_ID NUMBER);
-- 创建表T_R_TEST,存放sysdate和自增序列

2.建序列

CREATE SEQUENCE SEQUENCE_ID 
INCREMENT BY 1
START WITH 1;
-- 创建序列SEQUENCE_ID,步长1,起始值为1

3.建存储过程

CREATE OR REPLACE PROCEDURE SP_SYSDATE_INCREMENT IS
BEGIN
  -- 给T_R_TEST插入sysdate
  INSERT INTO T_R_TEST(P_DATE, P_ID)
  SELECT SYSDATE,SEQUENCE_ID.NEXTVAL FROM DUAL;
  COMMIT;
END SP_SYSDATE_INCREMENT;

4.建转换

打开Kettle的可视化操作界面Spoon.bat

面板操作

面板:核心对象>>查询>>调用DB存储过程
拖到右侧工作区新建【调用DB存储过程】 image.png

新建【调用DB存储过程】

image.png

新建【数据库连接】

image.png

选择存储过程(步骤3所建)

存储过程名称填入: SP_SYSDATE_INCREMENT (步骤3所建) 返回值名称: 清空内容 image.png

保存【转换】

image.png image.png

5.建作业

子步骤1

image.png

子步骤2

【转换】组件的地址要取步骤4建转换里保存的文件 image.png

子步骤3: 配置定时调度

双击【Start】
配置为每一分钟执行一次(如下图)
image.png

子步骤4: 执行作业

作业未命名时,点击执行按钮后,需要保存为文件,再执行 image.png 执行返回的提示 image.png 此时返回Oracle可以看到,已经自动执行了你所建的存储过程(2次) image.png