oracle存储过程,游标

oracle存储过程,游标
2010-07-07 13:01

create or replace PROCEDURE P_TB_TASK_LOG IS --功能:插入任务到任务日志表 V_TASK_START_DATE DATE;

V_TASK_END_DATE DATE;

V_SQL_CODE NUMBER;

V_SQL_MSG VARCHAR2(4000) := ''; --SQL错误信息

V_TASK_INFO TS25.TB_TASK_INFO%ROWTYPE;

V_COUNT NUMBER;

cursor CUR_TASK_INFO is select * FROM TS25.TB_TASK_INFO a;

begin --该存储过程执行开始时间和结束时间

SELECT SYSDATE INTO v_task_start_date FROM dual;

SELECT SYSDATE INTO v_task_end_date FROM dual;

v_sql_msg := 'step 1: 抽取数据到目的表TB_INS_INFO'; open CUR_TASK_INFO;

V_COUNT := 0;

loop fetch CUR_TASK_INFO into V_TASK_INFO;

exit when CUR_TASK_INFO %NOTFOUND;

INSERT INTO TB_TASK_LOG( c_id, --任务日志主键

c_task_number, --任务号

c_fk_task_id, --任务id

c_crt_id, --任务所有者

c_ori_user_id, --原所有者

c_curr_user_id, --现所有者

c_ori_task_stat, --原任务状态

c_curr_task_stat, --当前任务状态

c_sori_task_stat, --原任务销售状态

c_scurr_task_stat, --现在任务销售状态

c_del, --删除标志

c_act_type, --

n_change_amount,

c_change_reason,

c_task_type,

c_call_type,

t_cre_date,

c_purl_level,

c_ori_task_level, --原任务状态

c_curr_task_level, --现任务级别

c_note --备注 ) values(

sys_guid(), --任务日志主键

V_TASK_INFO.C_TTI_ID, --任务号

V_TASK_INFO.N_TTI_ID, --任务id

V_TASK_INFO.C_CRT_CDE, --创建人 '',

--原所有者ID V_TASK_INFO.C_NME, --现所有者ID '',

--原任务状态 V_TASK_INFO.C_STAT, --现任务状态 '',

--任务原销售状态 '',

--任务现销售状态 '0',

--删除状态 '',

-C_ACT_TYPE 1.派发 2. 改派   3.回收 4.执行 '0', -- 变更数量

'', --1.错号 2-空号 3-拒防  4-无意向 5-已投保 6-无人接听 7-占线

, --1-电销 2 网销 0 - 其它 V_TASK_INFO.C_TSK_TYPE, --1-呼入 2 -呼出 V_TASK_INFO.T_CRT_DATE, --创建日期 '', --投保意象度 '', --原任务级别 '', --现任务级别 '' --备注 );

if (V_COUNT = 1000) then commit;

V_COUNT := 0;

else V_COUNT := V_COUNT + 1;

endif;

end loop;

close CUR_TASK_INFO;

commit;

SELECT SYSDATE INTO v_task_end_date FROM dual; INSERT INTO LOAD_HIS_LOG (SYS, JOBNAME, START_DATE, END_DATE, RUN_DATE, SQL_CODE, SQL_STATE) VALUES ('TS25', 'P_TB_TASK_LOG', v_task_start_date, v_task_end_date, to_char((v_task_end_date - v_task_start_date) * 86400), v_sql_code, v_sql_msg);

COMMIT;

EXCEPTION WHEN OTHERS THEN v_sql_code := SQLCODE;

v_sql_msg := v_sql_msg || ' ' /*|| dbms_utility.format_error_backtrace*/ || ' : ' || SQLERRM; --任务结束时间 SELECT SYSDATE INTO v_task_end_date FROM dual; ROLLBACK;

INSERT INTO LOAD_HIS_LOG (SYS, JOBNAME, START_DATE, END_DATE, RUN_DATE, SQL_CODE, SQL_STATE) VALUES ('TS25', 'P_TB_INS_INFO', v_task_start_date, v_task_end_date, to_char((v_task_end_date - v_task_start_date) * 86400), v_sql_code, v_sql_msg);

COMMIT;

end P_TB_TASK_LOG;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值