You are on page 1of 3

---The following is Scheduled Job To Reset Sequences to zero every 1st

---day of month, you can test in test database


--- currently I am reseting to 1, you can put any value you feel better
--- in "START WITH 1"
BEGIN
SYS.DBMS_SCHEDULER.DROP_JOB
(job_name => 'RESET_BILLING_SEQUENCES');
END;
/
BEGIN
SYS.DBMS_SCHEDULER.CREATE_JOB
(
job_name
=> 'RESET_BILLING_SEQUENCES'
,start_date
=> TO_TIMESTAMP_TZ('2014/03/31 00:00:00.371000
+05:30','yyyy/mm/dd hh24:mi:ss.ff tzh:tzm')
,repeat_interval => 'FREQ=MONTHLY; BYMONTHDAY=1;'
,end_date
=> NULL
,job_class
=> 'DEFAULT_JOB_CLASS'
,job_type
=> 'PLSQL_BLOCK'
,job_action
=> '
BEGIN
DECLARE
l1_sql
VARCHAR2 (500) := ''DROP SEQUENCE OP_CASH_SEQ'';
l2_sql
VARCHAR2 (500)
:= ''CREATE SEQUENCE OP_CASH_SEQ
START WITH 1
MAXVALUE 9999999999999999999999999999
MINVALUE 1
NOCYCLE
NOCACHE
ORDER'';
l3_sql
VARCHAR2 (500) := ''DROP SEQUENCE OP_CREDIT_SEQ'';
l4_sql
VARCHAR2 (500)
:= ''CREATE SEQUENCE OP_CREDIT_SEQ
START WITH 1
MAXVALUE 9999999999999999999999999999
MINVALUE 1
NOCYCLE
NOCACHE
ORDER'';
l5_sql
VARCHAR2 (500) := ''DROP SEQUENCE OP_CREDIT_SPONSOR_SEQ'';
l6_sql
VARCHAR2 (500)
:= ''CREATE SEQUENCE OP_CREDIT_SPONSOR_SEQ
START WITH 1
MAXVALUE 9999999999999999999999999999
MINVALUE 1
NOCYCLE
NOCACHE
ORDER'';
BEGIN
EXECUTE IMMEDIATE l1_sql;
EXECUTE IMMEDIATE l2_sql;

EXECUTE IMMEDIATE l3_sql;


EXECUTE IMMEDIATE l4_sql;
EXECUTE IMMEDIATE l5_sql;
EXECUTE IMMEDIATE l6_sql;
END;
END;'
,comments
=> 'RESET_SEQUENCES'
);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name
=> 'RESET_BILLING_SEQUENCES'
,attribute => 'RESTARTABLE'
,value
=> FALSE);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name
=> 'RESET_BILLING_SEQUENCES'
,attribute => 'LOGGING_LEVEL'
,value
=> SYS.DBMS_SCHEDULER.LOGGING_OFF);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE_NULL
( name
=> 'RESET_BILLING_SEQUENCES'
,attribute => 'MAX_FAILURES');
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE_NULL
( name
=> 'RESET_BILLING_SEQUENCES'
,attribute => 'MAX_RUNS');
BEGIN
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name
=> 'RESET_BILLING_SEQUENCES'
,attribute => 'STOP_ON_WINDOW_CLOSE'
,value
=> FALSE);
EXCEPTION
-- could fail if program is of type EXECUTABLE...
WHEN OTHERS THEN
NULL;
END;
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name
=> 'RESET_BILLING_SEQUENCES'
,attribute => 'JOB_PRIORITY'
,value
=> 3);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE_NULL
( name
=> 'RESET_BILLING_SEQUENCES'
,attribute => 'SCHEDULE_LIMIT');
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name
=> 'RESET_BILLING_SEQUENCES'
,attribute => 'AUTO_DROP'
,value
=> TRUE);
SYS.DBMS_SCHEDULER.ENABLE
(name
=> 'RESET_BILLING_SEQUENCES');
END;
/

--- In case Due to Any reason The Job failed to execute you can run

------manually using following commands

DROP SEQUENCE

OP_CASH_SEQ;

CREATE SEQUENCE OP_CASH_SEQ


START WITH 1
MAXVALUE 9999999999999999999999999999
MINVALUE 1
NOCYCLE
NOCACHE
ORDER;
DROP SEQUENCE

OP_CREDIT_SEQ;

CREATE SEQUENCE OP_CREDIT_SEQ


START WITH 1
MAXVALUE 9999999999999999999999999999
MINVALUE 1
NOCYCLE
NOCACHE
ORDER;
DROP SEQUENCE

OP_CREDIT_SPONSOR_SEQ;

CREATE SEQUENCE OP_CREDIT_SPONSOR_SEQ


START WITH 1
MAXVALUE 9999999999999999999999999999
MINVALUE 1
NOCYCLE
NOCACHE
ORDER;

You might also like