美文网首页KettleKettle专栏kettle进阶
kettle 另类处理存储过程

kettle 另类处理存储过程

作者: 默直 | 来源:发表于2019-07-05 18:18 被阅读1次

kettle 另类处理存储过程


今有一项目需要用kettle访问存储过程,经过测试发现使用【表输入】组件是无法完成的;

以下为测试存储过程

SET @sql =NULL;

SELECT

        ROUND(COUNT(1)*0.1,0) INTO @sql

FROM emp;

SET @sql=concat('SELECT * FROM CD ORDER BY RAND() LIMIT ', @sql);

PREPARE stmt from @sql;

EXECUTE stmt;

DEALLOCATE PREPARE stmt;


此存储过程是查询10%的数据,

第一个select语句:SELECT  ROUND(COUNT(1)*0.1,0) INTO @sql  FROM emp;是查询总数的10%,打印出来是一个数字.

into @sql,是打印出数据并赋值给@sql;

打印数据

第二个select:SELECT * FROM CD ORDER BY RAND() LIMIT ', @sql,得到10%数据的详细信息。

在mysql数据库中执行以上存储过程,能够展示10%的数据,但把此sql赋值到【表输入】组件,发生错误,

如下:

报错

通过了解,第一个sql,得到一个变量值,第二个sql,是把变量值用到自己的sql中;

kettle中怎么实现呢?

首先看结果:

完整流程

第一步:打开【表输入】组件,把第一个sql,写到指定位置,其他不变;


得到变量值

第二步:选择【字段选择】组件,选择“countNumber”字段(变量值);

变量值字段

第三步:选择【表输入】组件,写入第二个sql,到指定位置,并配置信息;

配置信息

结果:得到我们需要的数据。

相关文章

  • kettle 另类处理存储过程

    kettle 另类处理存储过程 今有一项目需要用kettle访问存储过程,经过测试发现使用【表输入】组件是无法完成...

  • kettle处理操作

    1.kettle日期类型的数据需要进行处理操作: kettle输出的时候,日期类型的数据需要执行操作处理?可以使用...

  • 九、存储过程中异常的处理

    原则如下:1、存储过程中的异常要在本存储过程中进行处理。2、存储过程中调用存储过程,被调用的如果发生了异常,一般父...

  • SqlServer存储过程异常处理

    微软平台的软件开发系统中,有着一套自己的约定规则。熟悉.net开发的都会对异常处理不陌生,现阶段的各种编程语言中,...

  • 存储过程

    存储过程 存储过程是SQL语句和控制语句的预编译集合,以一个名称存储并作为一个单元处理。 ...

  • kettle项目源码编译

    这两天开始着手学习kettle,以下作为学习过程笔记。 kettle源码下载: https://github.co...

  • Kettle 调用 greenplum 数据库的存储过程

      第一次使用 kettle 以及 greenplum 数据库,特别是 greenplum 数据库网上资料特别稀缺...

  • kettle json处理

    Kettl处理JSON文件 Kettle处理JSON文件的文件格式,必须包含“[]”,否则不会成功; 第一种格式(...

  • mysql下存储过程与定时器

    存储过程 mysql存在两种方式(函数和存储过程),来使数据在数据库中处理。以节省程序员在应用内对数据的处理花费的...

  • mysql存储过程批量处理数据

    最近在学习Node.js的mysql模块,遇到一个问题:如何调用存储过程把批量数据一次性写入表中?想传入一个数组作...

网友评论

    本文标题:kettle 另类处理存储过程

    本文链接:https://www.haomeiwen.com/subject/srlehctx.html