T100之分割split函数方法、getIndexOf、subString、replace、临时表创建;

范例(cnmq001):

原:每次查询都把数据全部查询到临时表后再筛选;

现:查询到临时表的时候,增加可行的筛选条件,再二次筛选临时表的数据,进行优化;

1)临时表创建:

PRIVATE FUNCTION cnmq001_cr_tmp()
 
  DROP TABLE cnmq001_tmp 
  CREATE TEMP TABLE cnmq001_tmp(
   nmbc002 LIKE nmbc_t.nmbc002, 
   nmbc002_desc LIKE type_t.chr500, 
   nmbc005 LIKE nmbc_t.nmbc005, 
   nmbcdocno LIKE nmbc_t.nmbcdocno, 
   nmbcseq LIKE nmbc_t.nmbcseq, 
   nmbc006 LIKE nmbc_t.nmbc006, 
   nmbc007 LIKE nmbc_t.nmbc007, 
   nmbc007_desc LIKE nmajl_t.nmajl003,
   nmbcud001 LIKE nmbc_t.nmbcud001, 
   nmbc003 LIKE nmbc_t.nmbc003, 
   nmbc003_desc LIKE type_t.chr80, 
   inamt    LIKE type_t.num20_6, 
   nmbc100  LIKE nmbc_t.nmbc100,
   nmbc101  LIKE nmbc_t.nmbc101,
   outamt   LIKE type_t.num20_6,
   nmbccrtid LIKE nmbc_t.nmbccrtid,
   nmbccrtid_desc LIKE type_t.chr30,
   nmbccrtdt LIKE nmbc_t.nmbccrtdt
  )
  BEGIN WORK #170406-00001#1 放到事务里
   CALL cnmq001_ins_tmp()
  COMMIT WORK 
END FUNCTION

2)TIPTOP没有直接的split分割函数,所以走点弯路:

  LET l_token = base.StringTokenizer.create(ps_token,",")

   WHILE l_token.hasMoreTokens() 
      LET ls_token = l_token.nextToken()
          CALL cl_schedule_chk_mapping(ls_token,pd_field) 
    END WHILE

PRIVATE FUNCTION split_itemcount(p_arg1,p_arg2)
    DEFINE p_arg1   STRING
    DEFINE p_arg2   STRING
    DEFINE l_cnt    INT
    DEFINE tok      BASE.StringTokenizer

    #LET tok = base.StringTokenizer.create(p_arg1,p_arg2)  
    LET tok = base.StringTokenizer.createExt(p_arg1,p_arg2,"",TRUE)  
    LET l_cnt = tok.countTokens()  
    RETURN l_cnt

END FUNCTION

PRIVATE FUNCTION split(p_arg1,p_arg2,p_arg3)
    DEFINE p_arg1   STRING
    DEFINE p_arg2   STRING
    DEFINE p_arg3   INT
    DEFINE l_cnt    INT
    DEFINE l_idx    INT
    DEFINE l_retstr STRING
    DEFINE l_str    STRING
    DEFINE tok      BASE.StringTokenizer
    
    INITIALIZE l_retstr TO NULL
    #LET tok = base.StringTokenizer.creat
  • 20
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值