kettle关于oralce存储过程配置


for c1 in (
select LATN_ID,
PARTITION_ITEM_TYPE,
sum(SHOULD_CHARGE) SHOULD_CHARGE,
sum(CURRENT_CHARGE) CURRENT_CHARGE,
sum(HIS_PAY_CHARGE) HIS_PAY_CHARGE,
sum(HIS_CHARGE_PAY) HIS_CHARGE_PAY,
sum(HIS_CHARGE_ADJUST) HIS_CHARGE_ADJUST,
sum(MO_COUNT) MO_COUNT,
sum(MT_COUNT) MT_COUNT,
sum(ALL_SHOULD_CHARGE) ALL_SHOULD_CHARGE,
sum(ALL_CURRENT_CHARGE) ALL_CURRENT_CHARGE,
sum(ALL_HIS_CHARGE_PAY) ALL_HIS_CHARGE_PAY,
sum(ALL_HIS_CHARGE_ADJUST) ALL_HIS_CHARGE_ADJUST,
sum(ALL_MO_COUNT) ALL_MO_COUNT,
sum(ALL_MT_COUNT) ALL_MT_COUNT
 from SP_PARTITION_FEE_MID_HZ t1
 where 1=1
 --and t1.latn_id='1010'
 --and t1.PARTITION_ITEM_TYPE='411574050'
 group by LATN_ID,
PARTITION_ITEM_TYPE
  
 ) loop  
 
 for c2 in (
   select t1.PARTITION_EXPRESSIONS_TYPE,
        t1.sp_code,
       t1.sp_name,
       t1.sp_service_type_id,
       t1.sp_company,
       t1.partition_percent,
       t1.BAD_PERCENT,
       t2.partition_item_type,
       t1.UNBALANCED_FLAG,
       t1.partition_threshold
  from SP_SERVICE_TYPE t1, SP_ITEM_TYPE_RELATION t2
 where t1.sp_service_type_id = t2.sp_service_type_id
 and t2.partition_item_type=c1.PARTITION_ITEM_TYPE

 ) loop  
 
v_SP_CODE := c2.sp_code ;
v_SP_NAME := c2.sp_name ; 
v_PARTITION_PERCENT := c2.partition_percent ; 
v_LATN_ID := c1.latn_id ; 
v_BILLING_MONTH :=  v_MON_6 ;
v_SP_SERVICE_TYPE_ID := c2.sp_service_type_id ;
  
  
v_RESULT_ID := SEQ_SP_RESULT_ID.NEXTVAL ;
v_MO_COUNT := c1.MO_COUNT;
v_MT_COUNT := c1.MT_COUNT;
v_SHOULD_CHARGE := c1.should_charge;
v_CURRENT_CHARGE := c1.CURRENT_CHARGE;
v_HIS_CHARGE_PAY := c1.HIS_CHARGE_PAY;
v_HIS_CHARGE_ADJUST := c1.HIS_CHARGE_ADJUST;
v_ADJUST_CHARGE  := c1.HIS_CHARGE_ADJUST;

oracle 的存储过程,这循环嵌套 ,咋用kettle去配置 ,关联变量

参考:https://blog.csdn.net/python_go/article/details/102534675

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7770217
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:使用kettle交换工具自动创建oracle表分区
  • 除此之外, 这篇博客: kettle的数据库连接中的 2:oracle表输入 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 1:Parameter参数字段取的是第一个表输入的字段。
    2: 如果勾选了“Outer join” 默认是进行了左连接,类似以sql的SELECT d.* ,e.* FROM dept d LEFT JOIN emp e ON d.Id=e.id;