|
先不说别的, 简单的看了一下
代码中有很多地方是可以合并的, 能用一句SQL得到的所以结果, 不要分开用, 比如:
例如在函数MAIN_CONTRACT_NO中有如下的2个语句为:
select contest
into V_CONTEST
from ti_loancon
where trim(LNCONTCODE) = V_MAINCONTNO
and trim(DEPTCODE) = trim(ocw.brca_co);
select DEPTCODE
into V_MAINDEPTCODE
from ti_loancon
where trim(LNCONTCODE) = V_MAINCONTNO
and trim(DEPTCODE) = trim(ocw.brca_co);
万全可以合并为如下的:
select contest,
DEPTCODE
into ti_loancon,
V_MAINDEPTCODE
from ti_loancon
where trim(LNCONTCODE) = V_MAINCONTNO
and trim(DEPTCODE) = trim(ocw.brca_co);
还有fn_split完全可以和使用的的语句进行整体SQL语句合并, 也就是在定义游标的那个SQL语句时一次性把下面的功能进行整合, 当然这样就要在理解业务的基础上, 对目前的stored procedure进行语句整合, 单独的SQL语句写的太多, 本身就是由性能问题, 慢慢消化把, 把业务理解清楚是最重要的
类似如下的
select count(1)
into v_md
from Ods_Cub_A17
where (trim(csnm) || '.000' || trim(line_code)) = trim(ocx.line_code)
or (trim(csnm) || '.000' || trim(line_code)) in(select to_char(strvalue) as Value from table(MBT.fn_split(REC_LINE_REF, ',')));
|
|