oracle同时调用同一个带参数的存储过程10次
2个回答
展开全部
---写个存储过程循环调用
create or replace PROCEDURE P_LOOP_EXEC
IS EX_DUP_VALUE EXCEPTION;
PRAGMA EXCEPTION_INIT(EX_DUP_VALUE,-1);
V_DATE DATE;
V_MONTH VARCHAR2(10);
BEGIN
V_DATE := TO_DATE('20120101','YYYYMMDD');
WHILE V_DATE < SYSDATE LOOP
V_MONTH := TO_CHAR(V_DATE,'YYYYMM');
-- P_L2_DW_FACT_ZZFY(V_MONTH);
P_L2_DW_FACT_HR(V_MONTH);---这个是调用的存储过程,从20120101一直调用到现在的时间
V_DATE := ADD_MONTHS(V_DATE,1);
END LOOP;
EXCEPTION
WHEN EX_DUP_VALUE THEN
RAISE_APPLICATION_ERROR(-20001,'当前记录已存在,操作失败!');
ROLLBACK;
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20001,SUBSTR(SQLERRM,1,20000));
ROLLBACK;
END P_LOOP_EXEC;
create or replace PROCEDURE P_LOOP_EXEC
IS EX_DUP_VALUE EXCEPTION;
PRAGMA EXCEPTION_INIT(EX_DUP_VALUE,-1);
V_DATE DATE;
V_MONTH VARCHAR2(10);
BEGIN
V_DATE := TO_DATE('20120101','YYYYMMDD');
WHILE V_DATE < SYSDATE LOOP
V_MONTH := TO_CHAR(V_DATE,'YYYYMM');
-- P_L2_DW_FACT_ZZFY(V_MONTH);
P_L2_DW_FACT_HR(V_MONTH);---这个是调用的存储过程,从20120101一直调用到现在的时间
V_DATE := ADD_MONTHS(V_DATE,1);
END LOOP;
EXCEPTION
WHEN EX_DUP_VALUE THEN
RAISE_APPLICATION_ERROR(-20001,'当前记录已存在,操作失败!');
ROLLBACK;
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20001,SUBSTR(SQLERRM,1,20000));
ROLLBACK;
END P_LOOP_EXEC;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询