|
|
最初由 Fenng 发布
[B]
close 有显示和隐式的,显示的据说影响性能
但是我没有实际测试过,过分的依赖隐式关闭游标早晚会出现问题 [/B]
我碰到过隐式关闭游标出现问题的情况,以前我的一个过程中调用N个子过程,每个子过程都是用隐式游标
调用存储过程的脚本是这样的
spool d:\back\digiark_day&mydate..log
select to_char(sysdate,'yyyy/mm/dd HH24:MI:SS') begindate from dual;
execute outp_day_report_pre(sysdate - 365*4);
execute DUTY_OUTP_DAY_REPORT_PRE(sysdate - 365*4);
execute DUTY_INP_DAY_REPORT_PRE(sysdate - 365*4);
execute DUTY_OUTP_DAY_REPORT_PRE(sysdate - 365*4);
execute RECEIPT_INP_DAY_REPORT_PRE(sysdate - 365*4);
execute inp_day_duty_report_pre(sysdate - 365*4);
execute inp_day_receipt_report_pre(sysdate - 365*4);
select to_char(sysdate,'yyyy/mm/dd HH24:MI:SS') end_one_date from dual;
本来想修改存储过程,把游标写成显示调用,但是修改了调用存储过程的脚本就好了。
spool d:\back\digiark_day&mydate..log
select to_char(sysdate,'yyyy/mm/dd HH24:MI:SS') begindate from dual;
execute outp_day_report_pre(sysdate - 365*4);
commit;
execute DUTY_OUTP_DAY_REPORT_PRE(sysdate - 365*4);
commit;
execute DUTY_INP_DAY_REPORT_PRE(sysdate - 365*4);
commit;
execute DUTY_OUTP_DAY_REPORT_PRE(sysdate - 365*4);
commit;
execute RECEIPT_INP_DAY_REPORT_PRE(sysdate - 365*4);
commit;
execute inp_day_duty_report_pre(sysdate - 365*4);
commit;
execute inp_day_receipt_report_pre(sysdate - 365*4);
commit;
select to_char(sysdate,'yyyy/mm/dd HH24:MI:SS') end_one_date from dual; |
|