I am archiving data from one table to another table using below procedure.
create or replace PROCEDURE CHECK_TWO AS
v_insert_count number;
v_delete_count number;
v_initial_count number;
BEGIN
SELECT count(*) into v_initial_count from process_state where tstamp BETWEEN ADD_MONTHS(trunc(SYSDATE,'MONTH'), -12) AND LAST_DAY(TRUNC(SYSDATE, 'MONTH') - 4);
dbms_output.put_line(v_initial_count);
insert into process_state_archive select * from process_state where tstamp BETWEEN ADD_MONTHS(trunc(SYSDATE,'MONTH'), -12) AND LAST_DAY(TRUNC(SYSDATE, 'MONTH') - 4);
v_insert_count := sql%rowcount;
dbms_output.put_line(v_insert_count);
delete process_state where tstamp BETWEEN ADD_MONTHS(trunc(SYSDATE,'MONTH'), -12) AND LAST_DAY(TRUNC(SYSDATE, 'MONTH') - 4);
v_delete_count := sql%rowcount;
dbms_output.put_line(v_delete_count);
if v_insert_count = v_delete_count AND v_initial_count= v_insert_count then
commit;
else
rollback;
end if;
END CHECK_TWO;
In this process, I want to handle exceptions like Server Unavailable or Database Down or any other Environmental related issues. How to handle these scenarios in my stored procedure. Can anyone please tell me ??