kettle 另類處理存儲(chǔ)過(guò)程

kettle 另類處理存儲(chǔ)過(guò)程


今有一項(xiàng)目需要用kettle訪問(wèn)存儲(chǔ)過(guò)程,經(jīng)過(guò)測(cè)試發(fā)現(xiàn)使用【表輸入】組件是無(wú)法完成的;

以下為測(cè)試存儲(chǔ)過(guò)程

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;


此存儲(chǔ)過(guò)程是查詢10%的數(shù)據(jù),

第一個(gè)select語(yǔ)句:SELECT? ROUND(COUNT(1)*0.1,0) INTO @sql? FROM emp;是查詢總數(shù)的10%,打印出來(lái)是一個(gè)數(shù)字.

into @sql,是打印出數(shù)據(jù)并賦值給@sql;


打印數(shù)據(jù)

第二個(gè)select:SELECT * FROM CD ORDER BY RAND() LIMIT ', @sql,得到10%數(shù)據(jù)的詳細(xì)信息。

在mysql數(shù)據(jù)庫(kù)中執(zhí)行以上存儲(chǔ)過(guò)程,能夠展示10%的數(shù)據(jù),但把此sql賦值到【表輸入】組件,發(fā)生錯(cuò)誤,

如下:

報(bào)錯(cuò)

通過(guò)了解,第一個(gè)sql,得到一個(gè)變量值,第二個(gè)sql,是把變量值用到自己的sql中;

kettle中怎么實(shí)現(xiàn)呢?

首先看結(jié)果:

完整流程

第一步:打開【表輸入】組件,把第一個(gè)sql,寫到指定位置,其他不變;


得到變量值

第二步:選擇【字段選擇】組件,選擇“countNumber”字段(變量值);

變量值字段

第三步:選擇【表輸入】組件,寫入第二個(gè)sql,到指定位置,并配置信息;

配置信息

結(jié)果:得到我們需要的數(shù)據(jù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容