Table Of Contents
Packages, Procedures, Functions, and Triggers
3.1 CTM Stored Procedures
3.1.1 Add_Circuit_CTPS_TO_MET
3.1.2 Add_Log_Partition
3.1.3 Add_PM_Partition
3.1.4 Alarm-handling
3.1.5 Alter_User_Permission
3.1.6 Append_File
3.1.7 BulkNEAddition
3.1.8 Clear_AllUnack_Alarms
3.1.9 Create_File
3.1.10 Drop and Recreate Sequence Numbers During Migration (Reset_Seq)
3.1.11 Execute_DML_Statement
3.1.12 Execute_Statement
3.1.13 OT_MEMFP
3.1.14 PortName
3.1.15 Prune_NE
3.1.16 Prune_PM
3.1.17 Prune the Database
3.1.18 Update_Portnames
3.2 CTM Functions
3.2.1 CollapsedDestNodeName
3.2.2 CollapsedEqptPortName
3.2.3 CollapsedIfIndex
3.2.4 CollapsedModelType
3.2.5 CollapsedModuleName
3.2.6 CollapsedObjectIndex
3.2.7 CollapsedPhy
3.2.8 CollapsedPort
3.2.9 CollapsedPortModuleName
3.2.10 ConvertAXXIfIndex
3.2.11 ConvertLinkModuleType
3.2.12 CTMDuration
3.2.13 DisplayIF
3.2.14 DisplayIP
3.2.15 DisplayPhyLoc
3.2.16 EqptInfoPort
3.2.17 Get_ENET_Value
3.2.18 Get_ENET_Value2
3.2.19 GetBGFromBGObj
3.2.20 GetBGFromQoSObj
3.2.21 GetEqptInfoPhysicalLoc
3.2.22 GetInterfaceID
3.2.23 GetLowBits
3.2.24 GetModelTypeFromPhysicalLoc
3.2.25 GetModuleName
3.2.26 GetModuleName1
3.2.27 GetNEDBACCESSID
3.2.28 GetObjectTypeFromIfIndex
3.2.29 GetObjectTypeFromIfIndex2
3.2.30 GetObjTypeFromIfIndex
3.2.31 GetPhysicalLoc
3.2.32 GetPIM
3.2.33 GetPMParameterValue
3.2.34 GetPolicyMapType
3.2.35 GetPort_XTC
3.2.36 GetPort
3.2.37 GetPortModuleName
3.2.38 GetPortName
3.2.39 GetPortWithPIMPPM
3.2.40 GetPPM
3.2.41 GetSlot
3.2.42 GetSlotModuleName
3.2.43 GetSlotModuleType
3.2.44 GetSubIf
3.2.45 MapObjectIndex
3.2.46 MergedInvalidityList
3.2.47 RemoveFirstByteIF
3.2.48 RemoveLowBits
3.3 CTM Triggers
3.3.1 AAT_Before_Trigger
3.3.2 AAT_Trigger
3.3.3 Act_Trigger
3.3.4 Aft_Del_L2CktTable_Trigger
3.3.5 Aft_Del_L2Interface_Trigger
3.3.6 Aft_Ins_L2Interface_Trigger
3.3.7 Aft_InsDel_BridgeGroup_Trigger
3.3.8 CktDest_Trigger
3.3.9 Deleted_User_Trigger
3.3.10 NE_Model_State_Ins_Trig
3.3.11 NE_Model_Type_Del_Trig
3.3.12 NIT_Trigger
3.3.13 UT_Trigger
Packages, Procedures, Functions, and Triggers
This chapter describes the stored packages, procedures, functions, and triggers defined in CTM tables.
3.1 CTM Stored Procedures
3.1.1 Add_Circuit_CTPS_TO_MET
CREATE or REPLACE PROCEDURE add_circuit_ctps_to_met
p_CustomerId varchar2(256);
p_ServiceId varchar2(256);
p_PHYSICALLOC number(20);
p_NEDBAccessID number(10);
select c.CktType, c.CustomerId, c.ServiceId,
c.CKTSRCOBJECTTYPE, n.NEDBAccessID
into p_CktType, p_CustomerId, p_ServiceId, p_MODULETYPE,
p_PHYSICALLOC, p_ifindex, p_objecttype, p_NEDBAccessID
from circuit_tbl c, ne_info_table n
where c.CktNodeId = p_CktNodeId
and c.CktUniqueId = p_CktUniqueId
and c.CKTSRCNODEID = n.NENodeID
insert into Managed_Et_tab
WHEN DUP_VAL_ON_INDEX then
FIELD4_Num = p_objecttype,
Customer_Id_Str = p_CustomerId,
Service_Id_Str = p_ServiceId
where Mng_Entity_Type = p_CktType
and Mng_Entity_Id_Num = p_CktNodeId
and Mng_Entity_Id2_Num = p_CktUniqueId
and NeDBAccessId = p_NEDBAccessID
and FIELD1_Num = p_MODULETYPE
and FIELD2_Num = p_PHYSICALLOC
and FIELD3_Num = p_ifindex;
select c.CKTSECSRCMODULETYPE,
c.CKTSECSRCOBJECTTYPE, n.NEDBAccessID
p_PHYSICALLOC, p_ifindex, p_objecttype, p_NEDBAccessID
from circuit_tbl c, ne_info_table n
where c.CktNodeId = p_CktNodeId
and c.CktUniqueId = p_CktUniqueId
and c.CKTSECSRCNODEID = n.NENodeID
and c.CKTSECSRCNODEID != 0;
insert into Managed_Et_tab
WHEN DUP_VAL_ON_INDEX then
FIELD4_Num = p_objecttype,
Customer_Id_Str = p_CustomerId,
Service_Id_Str = p_ServiceId
where Mng_Entity_Type = p_CktType
and Mng_Entity_Id_Num = p_CktNodeId
and Mng_Entity_Id2_Num = p_CktUniqueId
and NeDBAccessId = p_NEDBAccessID
and FIELD1_Num = p_MODULETYPE
and FIELD2_Num = p_PHYSICALLOC
and FIELD3_Num = p_ifindex;
select t.CktDestModuleType, t.CktDestPhysicalLoc, t.CktDestIfIndex,
t.CktDestObjectType, n.NEDBAccessID
from circuit_dest_tbl t, ne_info_table n
where t.CktNodeId = p_CktNodeId
and t.CktUniqueId = p_CktUniqueId
and t.CktDestNodeId = n.NENodeID
insert into Managed_Et_tab
WHEN DUP_VAL_ON_INDEX then
FIELD4_Num = rec.CktDestObjectType,
Customer_Id_Str = p_CustomerId,
Service_Id_Str = p_ServiceId
where Mng_Entity_Type = p_CktType
and Mng_Entity_Id_Num = p_CktNodeId
and Mng_Entity_Id2_Num = p_CktUniqueId
and NeDBAccessId = rec.NEDBAccessID
and FIELD1_Num = rec.CktDestModuleType
and FIELD2_Num = rec.CktDestPhysicalLoc
and FIELD3_Num = rec.CktDestIfIndex;
select v.DESTNEMODULETYPE CktDestModuleType,
v.DESTPHYSICALLOC CktDestPhysicalLoc,
v.INTERFACEID CktDestIfIndex,
v.DESTOBJECTTYPE CktDestObjectType, v.DESTNEDBACCESSID NEDBAccessID
where v.NODEID = p_CktNodeId
and v.UNIQUEID = p_CktUniqueId
insert into Managed_Et_tab
WHEN DUP_VAL_ON_INDEX then
FIELD4_Num = rec.CktDestObjectType,
Customer_Id_Str = p_CustomerId,
Service_Id_Str = p_ServiceId
where Mng_Entity_Type = p_CktType
and Mng_Entity_Id_Num = p_CktNodeId
and Mng_Entity_Id2_Num = p_CktUniqueId
and NeDBAccessId = rec.NEDBAccessID
and FIELD1_Num = rec.CktDestModuleType
and FIELD2_Num = rec.CktDestPhysicalLoc
and FIELD3_Num = rec.CktDestIfIndex;
dbms_output.put_line(SQLERRM);
dbms_output.put_line(SQLCODE);
3.1.2 Add_Log_Partition
create or replace procedure add_log_partition AS
partition_to_be_added varchar2(9);
statement_txt varchar2(500);
rows_processed number := 0;
p_tablespace_name varchar2(25);
new_partition_name varchar2(9);
SELECT activevalue INTO ORACLE_SID
WHERE sectionname='database' and propertyname='dbname';
create_file('/oraclesw/admin/'||ORACLE_SID||'/udump','add_log_partition.log','Starting
adding partition at '||sysdate);
FOR rec IN ( SELECT table_name FROM user_tables
'ERROR_LOG_TABLE', 'SERVER_MONITOR_TABLE',
'NE_AUDIT_TRAIL_TABLE', 'ONS158XX_LAC_LOG_TABLE'
/* define date range for the partition to be added */
Select max(to_date( substr(partition_name,2,9))),tablespace_name
INTO new_partition_date, p_tablespace_name
Where segment_name =rec.table_name
group by tablespace_name;
new_partition_date:= new_partition_date+1;
partition_to_be_added:= 'p'||to_char(new_partition_date,'mmddyyyy');
/* add the new partition */
cursor_handle := DBMS_SQL.OPEN_CURSOR;
statement_txt := 'alter table '||rec.table_name ||' add partition
'||partition_to_be_added||
' values less than
('||''''||new_partition_date||''''||')
TABLESPACE '||p_tablespace_name;
DBMS_OUTPUT.PUT_LINE(statement_txt);
DBMS_SQL.PARSE(cursor_handle, statement_txt, DBMS_SQL.NATIVE);
rows_processed := DBMS_SQL.EXECUTE(cursor_handle);
DBMS_SQL.CLOSE_CURSOR (cursor_handle);
append_file('/oraclesw/admin/'||ORACLE_SID||'/udump','add_log_partition.log','added
partition '||partition_to_be_added||' to '||rec.table_name);
append_file('/oraclesw/admin/'||ORACLE_SID||'/udump','add_log_partition.log','Adding
partition successfully finished at '||sysdate);
create_file('/oraclesw/admin/'||ORACLE_SID||'/udump','add_log_partition.err','Error in
adding pm partition '||SQLERRM||', '||SQLCODE);
exec DBMS_JOB.SUBMIT(:jobno,'add_log_partition;',TRUNC(SYSDATE)+12/24,
'TRUNC(SYSDATE+1)+12/24');
3.1.3 Add_PM_Partition
create or replace procedure add_pm_partition AS
partition_to_be_added varchar2(9);
subpartition_15min_to_be_added varchar2(15);
subpartition_1day_to_be_added varchar2(14);
statement_txt varchar2(500);
rows_processed number := 0;
p_tablespace_name varchar2(25);
new_partition_name varchar2(9);
SELECT activevalue INTO ORACLE_SID
WHERE sectionname='database' and propertyname='dbname';
create_file('/oraclesw9i/admin/'||ORACLE_SID||'/udump','add_pm_partition.log','Starting
adding partition at '||sysdate);
FOR rec IN ( SELECT table_name FROM user_tables
WHERE table_name like '%PM_TABLE'
AND TABLE_NAME !='ONS158XX_TIMESTAMP_PM_TABLE')
/* define date range for the partition to be added */
Select max(to_date( substr(partition_name,2,9))),tablespace_name
INTO new_partition_date, p_tablespace_name
Where table_name =rec.table_name
group by tablespace_name;
new_partition_date:= new_partition_date+1;
partition_to_be_added:= 'p'||to_char(new_partition_date,'mmddyyyy');
subpartition_15min_to_be_added :=
'p15min_'||to_char(new_partition_date,'mmddyyyy');
subpartition_1day_to_be_added :=
'p1day_'||to_char(new_partition_date,'mmddyyyy');
/* add the new partition */
cursor_handle := DBMS_SQL.OPEN_CURSOR;
statement_txt := 'alter table '||rec.table_name ||' add partition
'||partition_to_be_added||
' values less than
('||''''||new_partition_date||''''||')'
|| ' TABLESPACE '||p_tablespace_name;
statement_txt := statement_txt || ' ('
|| ' subpartition ' || subpartition_15min_to_be_added
||' values(0),'
|| ' subpartition ' || subpartition_1day_to_be_added
||' values(1)'
--DBMS_OUTPUT.PUT_LINE(statement_txt);
DBMS_SQL.PARSE(cursor_handle, statement_txt, DBMS_SQL.NATIVE);
rows_processed := DBMS_SQL.EXECUTE(cursor_handle);
DBMS_SQL.CLOSE_CURSOR (cursor_handle);
append_file('/oraclesw9i/admin/'||ORACLE_SID||'/udump','add_pm_partition.log','added
partition '||partition_to_be_added||' to '||rec.table_name);
append_file('/oraclesw9i/admin/'||ORACLE_SID||'/udump','add_pm_partition.log','Adding
partition successfully finished at '||sysdate);
create_file('/oraclesw9i/admin/'||ORACLE_SID||'/udump','add_pm_partition.err','Error in
adding pm partition '||SQLERRM||', '||SQLCODE);
3.1.4 Alarm-handling
create or replace TYPE link_id_tabtype is Table of number;
create TYPE AlarmInfoType as OBJECT (
ActiveAlarmTimeStamp date,
ActiveAlarmSeverity number,
ActiveAlarmServEff number,
ActiveAlarmAdditionalInfo varchar2(512),
ActiveAlarmComment varchar2(2014),
ClearAlarmTimeStamp date,
NEAlarmClearTimeStamp date,
externalcondition varchar2(1024),
StrObjInstance VARCHAR2(256)
create TYPE AlarmInfoListType as table of AlarmInfoType;
create or replace package body CTMAlarm is
Procedure alarm_handle_impl
(p_nedbaccessid IN number,
p_Alarmseqnum IN number default 0,
p_ModuleOrIfIndex IN number,
p_ActiveAlarmTimeStamp IN date,
p_ActiveAlarmType IN number,
p_ActiveAlarmSeverity IN number,
p_ActiveAlarmServEff IN number,
p_ActiveAlarmAdditionalInfo IN varchar2,
p_ActiveAlarmFlag IN number,
p_ActiveAlarmComment IN varchar2 default null,
p_NEAlarmTimeStamp IN date,
p_linkid IN link_id_tabtype,
p_externalcondition IN varchar2,
p_StrObjInstance IN varchar2)
--INVALID_ALARM_STATUS EXCEPTION;
--PRAGMA EXCEPTION_INIT (INVALID_ALARM_STATUS, -20002);
total_num_linkid number:=0;
IF (p_alarmstatus = 0) THEN
INSERT INTO active_alarm_table (
ACTIVEALARMADDITIONALINFO,
p_activealarmadditionalinfo,
activealarmindex_seq.nextval,
when DUP_VAL_ON_INDEX then
dbms_output.put_line('Duplicate alarm');
create_file('/tmp','alarm_handling.log','Duplicated alarms');
select count(*) into counter from active_alarm_table
where nedbaccessid=p_nedbaccessid
AND moduleorifindex=p_ModuleOrIfIndex
AND ActiveAlarmType=p_ActiveAlarmType
AND NEAlarmTimeStamp=p_NEAlarmTimeStamp
AND Physicalloc=p_Physicalloc
AND ModelType = p_ModelType
AND ObjectType = p_ObjectType
AND StrObjInstance = p_StrObjInstance;
UPDATE active_alarm_table
clearalarmtimestamp=to_date(''),
nealarmcleartimestamp=to_date(''),
ActiveAlarmSeverity=p_ActiveAlarmSeverity,
ActiveAlarmServEff=p_ActiveAlarmServEff,
ActiveAlarmAdditionalInfo=p_ActiveAlarmAdditionalInfo,
WHERE nedbaccessid=p_nedbaccessid
AND moduleorifindex=p_ModuleOrIfIndex
AND ActiveAlarmType=p_ActiveAlarmType
AND NEAlarmTimeStamp=p_NEAlarmTimeStamp
AND Physicalloc=p_Physicalloc
AND ModelType = p_ModelType
AND ObjectType = p_ObjectType
AND StrObjInstance = p_StrObjInstance;
total_num_linkid := p_linkid.count;
FOR table_row IN 1 .. total_num_linkid LOOP
--dbms_output.put_line('p_linkid=' || p_linkid(table_row));
IF (p_linkid(table_row) != -1) THEN
IF (p_activealarmseverity = 4) THEN
SET NumWarningAlarms=NumWarningAlarms+1
WHERE linkid=p_linkid(table_row);
IF (p_activealarmseverity = 5) Then
SET NumMinorAlarms=NumMinorAlarms+1
WHERE linkid = p_linkid(table_row);
IF (p_activealarmseverity = 6) THEN
SET NumMajorAlarms=NumMajorAlarms+1
WHERE linkid = p_linkid(table_row);
IF (p_activealarmseverity = 7) THEN
SET NumCriticalAlarms=NumCriticalAlarms+1
WHERE linkid= p_linkid(table_row);
raise INVALID_ALARM_STATUS;
Procedure clear_alarms_impl
(p_nedbaccessid IN number,
p_ModuleOrIfIndex IN number,
p_ActiveAlarmType IN number,
p_ActiveAlarmSeverity IN number,
p_clearalarmtimestamp IN date,
p_NEAlarmClearTimeStamp IN date,
p_linkid IN link_id_tabtype,
p_StrObjInstance IN varchar2)
rows_processed number :=0;
statement_txt varchar2(4000):= null;
total_num_linkid number:=0;
--ALARM_NOT_FOUND EXCEPTION;
--PRAGMA EXCEPTION_INIT (ALARM_NOT_FOUND, -20000);
--INVALID_ALARM_STATUS EXCEPTION;
--PRAGMA EXCEPTION_INIT (INVALID_ALARM_STATUS, -20002);
IF (p_alarmstatus = 1 ) THEN
cursor_handle := DBMS_SQL.OPEN_CURSOR;
dbms_output.put_line(p_nedbaccessid);
statement_txt:='Update active_alarm_table set
alarmstatus=1,clearalarmtimestamp=to_date('||''''||p_clearalarmtimestamp||''''||'),
activealarmflag=0,
NEAlarmClearTimestamp=to_date('||''''||p_NEAlarmClearTimestamp||''''||')';
statement_txt := statement_txt||' Where alarmstatus=0 AND activealarmflag
=1 AND nedbaccessid= '||p_nedbaccessid ;
statement_txt := statement_txt||' and
moduleorifindex='||p_moduleorifindex;
statement_txt := statement_txt||' and
activealarmtype='||p_activealarmtype;
-- statement_txt := statement_txt||' and
activealarmseverity='||p_activealarmseverity;
statement_txt := statement_txt||' and physicalloc='||p_physicalloc;
statement_txt := statement_txt||' and modeltype='||p_ModelType;
statement_txt := statement_txt||' and objecttype='||p_ObjectType;
statement_txt := statement_txt||' and
strobjinstance='||''''||p_StrObjInstance||'''';
--dbms_output.put_line(statement_txt);
DBMS_SQL.PARSE(cursor_handle,statement_txt, DBMS_SQL.NATIVE);
rows_processed:=DBMS_SQL.EXECUTE(cursor_handle);
IF (rows_processed=0) THEN
dbms_output.put_line('Alarm_not_found');
DBMS_SQL.CLOSE_CURSOR (cursor_handle);
DBMS_SQL.CLOSE_CURSOR (cursor_handle);
-- this when in service ne put out of service, keep the activealarmflag=2
cursor_handle := DBMS_SQL.OPEN_CURSOR;
statement_txt:='Update active_alarm_table set
alarmstatus=1,clearalarmtimestamp=to_date('||''''||p_clearalarmtimestamp||''''||'),
activealarmflag =2,
NEAlarmClearTimestamp=to_date('||''''||p_NEAlarmClearTimestamp||''''||')';
statement_txt := statement_txt||' Where alarmstatus=0 AND nedbaccessid=
'||p_nedbaccessid ;
statement_txt := statement_txt||' and
moduleorifindex='||p_moduleorifindex;
statement_txt := statement_txt||' and
activealarmtype='||p_activealarmtype;
statement_txt := statement_txt||' and physicalloc='||p_physicalloc;
statement_txt := statement_txt||' and modeltype='||p_ModelType;
statement_txt := statement_txt||' and objecttype='||p_ObjectType;
statement_txt := statement_txt||' and
strobjinstance='||''''||p_StrObjInstance||'''';
DBMS_SQL.PARSE(cursor_handle,statement_txt, DBMS_SQL.NATIVE);
rows_processed:=DBMS_SQL.EXECUTE(cursor_handle);
IF (rows_processed=0) THEN
dbms_output.put_line('Alarm_not_found');
DBMS_SQL.CLOSE_CURSOR (cursor_handle);
DBMS_SQL.CLOSE_CURSOR (cursor_handle);
------ Normal clear alarms
IF (p_actiontype = 0) THEN
cursor_handle := DBMS_SQL.OPEN_CURSOR;
statement_txt:='Update active_alarm_table set
alarmstatus=1,clearalarmtimestamp=to_date('||''''||p_clearalarmtimestamp||''''||'),
NEAlarmClearTimestamp=to_date('||''''||p_NEAlarmClearTimestamp||''''||')' ;
statement_txt := statement_txt||' Where alarmstatus=0 AND nedbaccessid=
'||p_nedbaccessid ;
statement_txt := statement_txt||' and
moduleorifindex='||p_moduleorifindex;
statement_txt := statement_txt||' and
activealarmtype='||p_activealarmtype;
-- statement_txt := statement_txt||' and
activealarmseverity='||p_activealarmseverity;
statement_txt := statement_txt||' and physicalloc='||p_physicalloc;
statement_txt := statement_txt||' and modeltype='||p_ModelType;
statement_txt := statement_txt||' and objecttype='||p_ObjectType;
statement_txt := statement_txt||' and
strobjinstance='||''''||p_StrObjInstance||'''';
-- dbms_output.put_line(statement_txt);
DBMS_SQL.PARSE(cursor_handle,statement_txt, DBMS_SQL.NATIVE);
rows_processed:=DBMS_SQL.EXECUTE(cursor_handle);
IF (rows_processed=0) THEN
dbms_output.put_line('Alarm_not_found');
DBMS_SQL.CLOSE_CURSOR (cursor_handle);
DBMS_SQL.CLOSE_CURSOR (cursor_handle);
total_num_linkid := p_linkid.count;
FOR table_row IN 1 .. total_num_linkid LOOP
IF (p_linkid(table_row) != -1) THEN
IF (p_activealarmseverity = 4) THEN
SET NumWarningAlarms=NumWarningAlarms-1
WHERE linkid=p_linkid(table_row)
AND NumWarningAlarms > 0;
IF (p_activealarmseverity = 5) Then
SET NumMinorAlarms=NumMinorAlarms-1
WHERE linkid = p_linkid(table_row)
IF (p_activealarmseverity = 6) THEN
SET NumMajorAlarms=NumMajorAlarms-1
WHERE linkid = p_linkid(table_row)
IF (p_activealarmseverity = 7) THEN
SET NumCriticalAlarms=NumCriticalAlarms-1
WHERE linkid= p_linkid(table_row)
AND NumCriticalAlarms > 0;
raise INVALID_ALARM_STATUS;
Procedure add_clear_alarms_impl
(p_nedbaccessid IN number,
p_Alarmseqnum IN number default 0,
p_ModuleOrIfIndex IN number,
p_ActiveAlarmTimeStamp IN date,
p_ActiveAlarmType IN number,
p_ActiveAlarmSeverity IN number,
p_ActiveAlarmServEff IN number,
p_ActiveAlarmAdditionalInfo IN varchar2,
p_ActiveAlarmFlag IN number,
p_ClearAlarmTimeStamp IN date,
p_NEAlarmTimeStamp IN date,
p_NEAlarmClearTimeStamp IN date,
p_linkid IN link_id_tabtype,
p_externalcondition IN varchar2,
p_StrObjInstance IN varchar2)
rows_processed number :=0;
statement_txt varchar2(4000):= null;
total_num_linkid number:=0;
--ALARM_NOT_FOUND EXCEPTION;
--PRAGMA EXCEPTION_INIT (ALARM_NOT_FOUND, -20000);
--INVALID_ALARM_STATUS EXCEPTION;
--PRAGMA EXCEPTION_INIT (INVALID_ALARM_STATUS, -20002);
IF (p_alarmstatus = 1 ) THEN
cursor_handle := DBMS_SQL.OPEN_CURSOR;
dbms_output.put_line(p_nedbaccessid);
statement_txt:='Update active_alarm_table set
alarmstatus=1,clearalarmtimestamp=to_date('||''''||p_clearalarmtimestamp||''''||'),
activealarmflag=0,
NEAlarmClearTimestamp=to_date('||''''||p_NEAlarmClearTimestamp||''''||')';
statement_txt := statement_txt||' Where alarmstatus=0 AND activealarmflag
=1 AND nedbaccessid= '||p_nedbaccessid ;
statement_txt := statement_txt||' and
moduleorifindex='||p_moduleorifindex;
statement_txt := statement_txt||' and
activealarmtype='||p_activealarmtype;
-- statement_txt := statement_txt||' and
activealarmseverity='||p_activealarmseverity;
statement_txt := statement_txt||' and physicalloc='||p_physicalloc;
statement_txt := statement_txt||' and modeltype='||p_ModelType;
statement_txt := statement_txt||' and objecttype='||p_ObjectType;
statement_txt := statement_txt||' and
strobjinstance='||''''||p_StrObjInstance||'''';
dbms_output.put_line(statement_txt);
DBMS_SQL.PARSE(cursor_handle,statement_txt, DBMS_SQL.NATIVE);
rows_processed:=DBMS_SQL.EXECUTE(cursor_handle);
IF (rows_processed=0) THEN
dbms_output.put_line('Alarm_not_found');
DBMS_SQL.CLOSE_CURSOR (cursor_handle);
DBMS_SQL.CLOSE_CURSOR (cursor_handle);
-- this when in service ne put out of service, keep the activealarmflag=2
cursor_handle := DBMS_SQL.OPEN_CURSOR;
statement_txt:='Update active_alarm_table set
alarmstatus=1,clearalarmtimestamp=to_date('||''''||p_clearalarmtimestamp||''''||'),
activealarmflag =2,
NEAlarmClearTimestamp=to_date('||''''||p_NEAlarmClearTimestamp||''''||')';
statement_txt := statement_txt||' Where alarmstatus=0 AND nedbaccessid=
'||p_nedbaccessid ;
statement_txt := statement_txt||' and
moduleorifindex='||p_moduleorifindex;
statement_txt := statement_txt||' and
activealarmtype='||p_activealarmtype;
statement_txt := statement_txt||' and physicalloc='||p_physicalloc;
statement_txt := statement_txt||' and modeltype='||p_ModelType;
statement_txt := statement_txt||' and objecttype='||p_ObjectType;
statement_txt := statement_txt||' and
strobjinstance='||''''||p_StrObjInstance||'''';
DBMS_SQL.PARSE(cursor_handle,statement_txt, DBMS_SQL.NATIVE);
rows_processed:=DBMS_SQL.EXECUTE(cursor_handle);
IF (rows_processed=0) THEN
dbms_output.put_line('Alarm_not_found');
DBMS_SQL.CLOSE_CURSOR (cursor_handle);
DBMS_SQL.CLOSE_CURSOR (cursor_handle);
------ Normal clear alarms
IF (p_actiontype = 0) THEN
cursor_handle := DBMS_SQL.OPEN_CURSOR;
statement_txt:='Update active_alarm_table set
alarmstatus=1,clearalarmtimestamp=to_date('||''''||p_clearalarmtimestamp||''''||'),
NEAlarmClearTimestamp=to_date('||''''||p_NEAlarmClearTimestamp||''''||')' ;
statement_txt := statement_txt||' Where alarmstatus=0 AND nedbaccessid=
'||p_nedbaccessid ;
statement_txt := statement_txt||' and
moduleorifindex='||p_moduleorifindex;
statement_txt := statement_txt||' and
activealarmtype='||p_activealarmtype;
-- statement_txt := statement_txt||' and
activealarmseverity='||p_activealarmseverity;
statement_txt := statement_txt||' and physicalloc='||p_physicalloc;
statement_txt := statement_txt||' and modeltype='||p_ModelType;
statement_txt := statement_txt||' and objecttype='||p_ObjectType;
statement_txt := statement_txt||' and
strobjinstance='||''''||p_StrObjInstance||'''';
-- dbms_output.put_line(statement_txt);
DBMS_SQL.PARSE(cursor_handle,statement_txt, DBMS_SQL.NATIVE);
rows_processed:=DBMS_SQL.EXECUTE(cursor_handle);
IF (rows_processed=0) THEN
dbms_output.put_line('Alarm_not_found');
DBMS_SQL.CLOSE_CURSOR (cursor_handle);
DBMS_SQL.CLOSE_CURSOR (cursor_handle);
total_num_linkid := p_linkid.count;
FOR table_row IN 1 .. total_num_linkid LOOP
IF (p_linkid(table_row) != -1) THEN
IF (p_activealarmseverity = 4) THEN
SET NumWarningAlarms=NumWarningAlarms-1
WHERE linkid=p_linkid(table_row)
AND NumWarningAlarms > 0;
IF (p_activealarmseverity = 5) Then
SET NumMinorAlarms=NumMinorAlarms-1
WHERE linkid = p_linkid(table_row)
IF (p_activealarmseverity = 6) THEN
SET NumMajorAlarms=NumMajorAlarms-1
WHERE linkid = p_linkid(table_row)
IF (p_activealarmseverity = 7) THEN
SET NumCriticalAlarms=NumCriticalAlarms-1
WHERE linkid= p_linkid(table_row)
AND NumCriticalAlarms > 0;
raise INVALID_ALARM_STATUS;
when ALARM_NOT_FOUND then
dbms_output.put_line('New insertion of cleared alarm');
IF (p_actiontype = 1 OR p_actiontype = 2) THEN
INSERT INTO active_alarm_table (
ACTIVEALARMADDITIONALINFO,
p_activealarmadditionalinfo,
activealarmindex_seq.nextval,
p_nedbaccessid IN number,
p_Alarmseqnum IN number default 0,
p_ModuleOrIfIndex IN number,
p_ActiveAlarmTimeStamp IN date,
p_ActiveAlarmType IN number,
p_ActiveAlarmSeverity IN number,
p_ActiveAlarmServEff IN number,
p_ActiveAlarmAdditionalInfo IN varchar2,
p_ActiveAlarmFlag IN number,
p_ActiveAlarmComment IN varchar2 default null,
p_NEAlarmTimeStamp IN date,
p_linkid IN link_id_tabtype,
p_externalcondition IN varchar2,
p_StrObjInstance IN varchar2
--dbms_output.put_line('alarm_handle: calling alarm_handle_impl: nedbaccessid=' ||
p_nedbaccessid || ', ActiveAlarmComment=' || p_ActiveAlarmComment || ', alarmstatus=' ||
p_alarmstatus);
p_ActiveAlarmAdditionalInfo,
p_nedbaccessid IN number,
p_ModuleOrIfIndex IN number,
p_ActiveAlarmType IN number,
p_ActiveAlarmSeverity IN number,
p_clearalarmtimestamp IN date,
p_NEAlarmClearTimeStamp IN date,
p_linkid IN link_id_tabtype,
p_StrObjInstance IN varchar2
--dbms_output.put_line('clear_alarms: calling clear_alarms_impl: nedbaccessid=' ||
p_nedbaccessid || ', alarmstatus=' || p_alarmstatus);
Procedure add_clear_alarms
p_nedbaccessid IN number,
p_Alarmseqnum IN number default 0,
p_ModuleOrIfIndex IN number,
p_ActiveAlarmTimeStamp IN date,
p_ActiveAlarmType IN number,
p_ActiveAlarmSeverity IN number,
p_ActiveAlarmServEff IN number,
p_ActiveAlarmAdditionalInfo IN varchar2,
p_ActiveAlarmFlag IN number,
p_ClearAlarmTimeStamp IN date,
p_NEAlarmTimeStamp IN date,
p_NEAlarmClearTimeStamp IN date,
p_linkid IN link_id_tabtype,
p_externalcondition IN varchar2,
p_StrObjInstance IN VARCHAR2
--dbms_output.put_line('add_clear_alarms: calling add_clear_alarms_impl:
nedbaccessid=' || p_nedbaccessid || ', alarmstatus=' || p_alarmstatus);
p_ActiveAlarmAdditionalInfo,
Procedure bulk_alarm_handle
p_AlarmInfoList IN AlarmInfoListType
For I IN p_AlarmInfoList.FIRST .. p_AlarmInfoList.LAST
--dbms_output.put_line('bulk_alarm_handle: calling alarm_handle_impl: i=' || i ||
':, nedbaccessid=' || p_AlarmInfoList(i).nedbaccessid || ', ActiveAlarmComment=' ||
p_AlarmInfoList(i).ActiveAlarmComment || ', alarmstatus=' ||
p_AlarmInfoList(i).alarmstatus);
p_AlarmInfoList(i).nedbaccessid,
p_AlarmInfoList(i).Alarmseqnum,
p_AlarmInfoList(i).ModuleOrIfIndex,
p_AlarmInfoList(i).ActiveAlarmTimeStamp,
p_AlarmInfoList(i).ActiveAlarmType,
p_AlarmInfoList(i).ActiveAlarmSeverity,
p_AlarmInfoList(i).ActiveAlarmServEff,
p_AlarmInfoList(i).ActiveAlarmAdditionalInfo,
p_AlarmInfoList(i).AckIndex,
p_AlarmInfoList(i).ActiveAlarmFlag,
p_AlarmInfoList(i).ActiveAlarmComment,
p_AlarmInfoList(i).NEAlarmTimeStamp,
p_AlarmInfoList(i).ModuleType,
p_AlarmInfoList(i).Physicalloc,
p_AlarmInfoList(i).alarmstatus,
p_AlarmInfoList(i).linkid,
p_AlarmInfoList(i).actiontype,
p_AlarmInfoList(i).externalcondition,
p_AlarmInfoList(i).ModelType,
p_AlarmInfoList(i).ObjectType,
p_AlarmInfoList(i).StrObjInstance
Procedure bulk_clear_alarms
p_AlarmInfoList IN AlarmInfoListType
For I IN p_AlarmInfoList.FIRST .. p_AlarmInfoList.LAST
dbms_output.put_line('bulk_clear_alarms: calling clear_alarms_impl: i=' || i ||
':, nedbaccessid=' || p_AlarmInfoList(i).nedbaccessid || ', ActiveAlarmComment=' ||
p_AlarmInfoList(i).ActiveAlarmComment || ', alarmstatus=' ||
p_AlarmInfoList(i).alarmstatus);
p_AlarmInfoList(i).nedbaccessid,
p_AlarmInfoList(i).ModuleOrIfIndex,
p_AlarmInfoList(i).ActiveAlarmType,
p_AlarmInfoList(i).ActiveAlarmSeverity,
p_AlarmInfoList(i).clearalarmtimestamp,
p_AlarmInfoList(i).NEAlarmClearTimeStamp,
p_AlarmInfoList(i).Physicalloc,
p_AlarmInfoList(i).alarmstatus,
p_AlarmInfoList(i).linkid,
p_AlarmInfoList(i).actiontype,
p_AlarmInfoList(i).ModelType,
p_AlarmInfoList(i).ObjectType,
p_AlarmInfoList(i).StrObjInstance
Procedure bulk_add_clear_alarms
p_AlarmInfoList IN AlarmInfoListType
For I IN p_AlarmInfoList.FIRST .. p_AlarmInfoList.LAST
--dbms_output.put_line('bulk_add_clear_alarms: calling add_clear_alarms_impl: i='
|| i || ':, nedbaccessid=' || p_AlarmInfoList(i).nedbaccessid || ', ActiveAlarmComment='
|| p_AlarmInfoList(i).ActiveAlarmComment || ', alarmstatus=' ||
p_AlarmInfoList(i).alarmstatus);
p_AlarmInfoList(i).nedbaccessid,
p_AlarmInfoList(i).Alarmseqnum,
p_AlarmInfoList(i).ModuleOrIfIndex,
p_AlarmInfoList(i).ActiveAlarmTimeStamp,
p_AlarmInfoList(i).ActiveAlarmType,
p_AlarmInfoList(i).ActiveAlarmSeverity,
p_AlarmInfoList(i).ActiveAlarmServEff,
p_AlarmInfoList(i).ActiveAlarmAdditionalInfo,
p_AlarmInfoList(i).AckIndex,
p_AlarmInfoList(i).ActiveAlarmFlag,
p_AlarmInfoList(i).ClearAlarmTimeStamp,
p_AlarmInfoList(i).NEAlarmTimeStamp,
p_AlarmInfoList(i).NEAlarmClearTimeStamp,
p_AlarmInfoList(i).ModuleType,
p_AlarmInfoList(i).Physicalloc,
p_AlarmInfoList(i).alarmstatus,
p_AlarmInfoList(i).linkid,
p_AlarmInfoList(i).actiontype,
p_AlarmInfoList(i).externalcondition,
p_AlarmInfoList(i).ModelType,
p_AlarmInfoList(i).ObjectType,
p_AlarmInfoList(i).StrObjInstance
3.1.5 Alter_User_Permission
create or replace PROCEDURE alter_user_permission
IF (AddOrRemove = 'Remove') THEN
FOR rec IN (select userid FROM user_table
where subtypeofUser=userTypeId) LOOP
DELETE FROM user_map_table
error_msg:= 'Remove failed for userid '||rec.userid;
IF (AddOrRemove = 'Add') THEN
FOR rec IN (select userid FROM user_table
where subTypeOfUser=UserTypeId) LOOP
INSERT INTO user_map_table
VALUES (rec.userid, 2, -2);
error_msg:= 'Add failed for userid '||rec.userid;
3.1.6 Append_File
create or replace PROCEDURE append_file
(loc_in IN varchar2, file_in IN varchar2, line_in IN varchar2 :=null)
file_handle utl_file.file_type;
file_handle := utl_file.fopen (loc_in, file_in,'A');
utl_file.put_line(file_handle,line_in);
utl_file.fclose(file_handle);
dbms_output.put_line(SQLERRM);
dbms_output.put_line(SQLCODE);
dbms_output.put_line('Error in appending log file');
3.1.7 BulkNEAddition
create or replace procedure BulkNEAddition
(OperationType IN number,
GroupToBeInserted IN number,
GroupDescription IN varchar2,
GroupLocationName IN varchar2,
GneToBeInserted IN number,
GroupingOption IN number,
SubNWToBeInserted IN number,
SubNwName IN OUT varchar2,
SubnetTopology IN number,
OperationalState IN number,
NeDescription IN varchar2,
SnmpCommunityString IN varchar2,
DisplayModelName IN varchar2,
GwTL1UserName IN varchar2,
GwTL1Password IN varchar2,
pmCollectionFlag IN number,
i_subNWName varchar2(64);
BulkNeAdd_FAILED EXCEPTION;
IF (GroupToBeInserted = 1) THEN
SELECT groupId_seq.nextval INTO i_groupId from dual;
INSERT INTO group_info_table
VALUES(i_groupid, GroupName,GroupDescription,'',GroupLocationName);
IF (GneToBeInserted = 1) THEN
SELECT GNEID_SEQ.nextval INTO i_gneid from dual;
VALUES(i_gneid, 0,1, GneSysid,NextHopIpaddr,'',GroupingOption,GroupPrefix,
inUserId);
IF (SubNWToBeInserted = 1) THEN
SELECT SUBNETID_SEQ.nextval INTO i_subnetid FROM dual;
IF (subNwName is null) THEN
SELECT 'Subnetwork-'||lpad(i_subnetid,8,'0')
INTO i_subNwName from dual;
SELECT count(*) INTO counter from subnetwork_table
WHERE subnetname=i_subNwName;
i_subNwName:=i_subNwName||'-1';
INSERT INTO subnetwork_table
VALUES (i_subnetid, i_subNWName,'','',SubnetType,
SubnetTopology,-1,NWPartitionId);
SELECT NEDBACCESSID_SEQ.nextval INTO i_neid FROM dual;
INSERT INTO ne_info_table
UPDATE NE_INFO_TABLE set NEIPADDR=''
SELECT Properties INTO userProperty
WHERE usertypeid = ( select subtypeofuser from user_table where userid =
InUserId);
IF (userProperty =2) THEN
SELECT count(*) INTO assigned_group
AND (GroupOrNEID IN ( SELECT parentid FROM domain_table
START WITH parentid=parentGroupid
CONNECT by prior parentid=childid)
OR GroupOrNEID =parentGroupid);
IF (assigned_group = 0) THEN
IF (GroupToBeInserted =1) THEN
INSERT INTO user_map_table
VALUES (inUserId, 2, i_groupid);
INSERT INTO user_map_table
VALUES(inUserId, 3, i_neid);
IF (parentGroupId = 0) THEN
IF (GroupToBeInserted = 1 ) THEN
values(DT_TREENODEID_SEQ.nextval, i_parenttype, parentGroupid, 2,
i_groupid);
VALUES (DT_TREENODEID_SEQ.nextval, 2, i_groupid, 3,i_neid);
VALUES (DT_TREENODEID_SEQ.nextval, i_parenttype, parentGroupid, 3,i_neid);
INSERT INTO Cerent_Ne_Group_Table VALUES (i_neid, GroupingOption);
--create_file('/oraclesw9i','bulkneadd.log','neid:'||neId||' newGroupId:'||newGroupId||'
subNwname:'||subNwname||' subNwId:'||subNwId||' GneId:'||GneId);
3.1.8 Clear_AllUnack_Alarms
CREATE or REPLACE procedure clear_allunack_alarms
WHERE propertyname='clear-unack-alarms'
FOR rec IN (select rowid from active_alarm_table
UPDATE active_alarm_table
IF mod(counter,1000)=0 THEN
dbms_output.put_line('Total '||counter||' cleared alarms are autoacknowledged');
WHERE propertyname='clear-unack-alarms'
3.1.9 Create_File
create or replace PROCEDURE create_file
(loc_in IN varchar2, file_in IN varchar2, line_in IN varchar2 :=null)
file_handle utl_file.file_type;
file_handle := utl_file.fopen (loc_in, file_in, 'W');
IF line_in IS NOT NULL THEN
utl_file.put_line(file_handle, line_in);
utl_file.put_line(file_handle, 'Nothing to write');
utl_file.fclose(file_handle);
dbms_output.put_line(SQLERRM);
dbms_output.put_line(SQLCODE);
dbms_output.put_line('Error in creating log file');
3.1.10 Drop and Recreate Sequence Numbers During Migration (Reset_Seq)
CTM uses the reset_seq stored procedure to drop and recreate sequence numbers during migration.
CREATE or REPLACE PROCEDURE reset_seq
(p_statement_txt1 varchar2,
p_statement_txt2 varchar2,
cursor_handle number:=DBMS_SQL.OPEN_CURSOR;
rows_processed number:=0;
statement_txt varchar2(500);
statement_txt := p_statement_txt1 ||' '||seq_name||P_statement_txt2||' '||seq_number;
dbms_output.put_line(statement_txt);
DBMS_SQL.PARSE (cursor_handle, statement_txt, DBMS_SQL.NATIVE);
rows_processed := DBMS_SQL.EXECUTE(cursor_handle);
DBMS_SQL.CLOSE_CURSOR(cursor_handle);
IF DBMS_SQL.IS_OPEN(cursor_handle) THEN
DBMS_SQL.CLOSE_CURSOR(cursor_handle);
3.1.11 Execute_DML_Statement
CREATE or REPLACE procedure execute_dml_statement
p_statement_txt in varchar2
pragma AUTONOMOUS_TRANSACTION;
execute immediate p_statement_txt;
3.1.12 Execute_Statement
CREATE or REPLACE PROCEDURE execute_statement
(p_statement_txt1 varchar2,
p_statement_txt2 varchar2,
p_statement_txt3 varchar2)
cursor_handle number:=DBMS_SQL.OPEN_CURSOR;
rows_processed number:=0;
statement_txt varchar2(500);
statement_txt := p_statement_txt1 ||param1||P_statement_txt2|| param2
||p_statement_txt3;
dbms_output.put_line(statement_txt);
DBMS_SQL.PARSE (cursor_handle, statement_txt, DBMS_SQL.NATIVE);
rows_processed := DBMS_SQL.EXECUTE(cursor_handle);
DBMS_SQL.CLOSE_CURSOR(cursor_handle);
IF DBMS_SQL.IS_OPEN(cursor_handle) THEN
DBMS_SQL.CLOSE_CURSOR(cursor_handle);
3.1.13 OT_MEMFP
CREATE OR REPLACE PACKAGE ot_memfp IS
c_part CONSTANT INTEGER := 16;
uninit_seq_num CONSTANT INTEGER := -1;
FUNCTION sequence_num_part(model_type IN INTEGER) RETURN INTEGER;
FUNCTION low_part(model_type IN INTEGER) RETURN INTEGER;
FUNCTION high_part(model_type IN INTEGER) RETURN INTEGER;
FUNCTION move_part(new_seq_num IN INTEGER, old_model_type IN INTEGER) RETURN INTEGER;
PROCEDURE change_node_id(old_node_id IN INTEGER, new_node_id IN INTEGER, status OUT
INTEGER);
PROCEDURE update_seq_num(nid IN INTEGER, mtype IN INTEGER, seq_num INTEGER);
PROCEDURE get_seq_num(nid IN INTEGER, mtype IN INTEGER, result IN OUT INTEGER);
PROCEDURE del_partition(nid IN INTEGER, mtype IN INTEGER, rowcount OUT INTEGER);
PROCEDURE insert_empty_blob(nid IN INTEGER, mtype IN INTEGER, ndx IN INTEGER);
/* -----------------------------------------------------------------------*/
* @param str - user string to be logged
PROCEDURE log(str IN VARCHAR2) IS
DBMS_OUTPUT.PUT_LINE(str);
* Convert PSQL BOOLEAN type to a SQL parameter string
FUNCTION boolean_to_varchar2(flag IN BOOLEAN) RETURN VARCHAR2 IS
* Utility method to help check for the existence of user tables,
* @return true iff there is a row in system table: <tableName> with
* scolumn <colName> with value <criteria>
FUNCTION doesExist(criteria IN VARCHAR2, tableName IN VARCHAR2, colName IN VARCHAR2)
RETURN BOOLEAN IS
crit := UPPER(criteria); -- all schema names are presumed stored in upper-case
str := 'SELECT COUNT(*) FROM ' || tableName || ' WHERE ' || colName || ' = :crit';
EXECUTE IMMEDIATE str INTO cnt USING IN crit;
* Utility method to re-create a table.
* If the table already existed it's dropped AND any associated integrity constraints
are dropped as well
PROCEDURE recreateTable(table_name IN VARCHAR2, record_typedef IN VARCHAR2,
opt_phy_crit IN VARCHAR2) IS
systable CONSTANT VARCHAR(32) := 'user_tables';
syscol CONSTANT VARCHAR(32) := 'TABLE_NAME';
banner CONSTANT VARCHAR(32) := '*** table ';
exist := doesExist(table_name, systable, syscol);
log(banner || table_name || ' already exists? ' || boolean_to_varchar2(exist));
-- drop the table since it exists. Cascade the drop to any integrity
constraints...
EXECUTE IMMEDIATE 'DROP TABLE ' || table_name || ' CASCADE CONSTRAINTS';
EXECUTE IMMEDIATE 'CREATE TABLE ' || table_name || ' (' || details || ' )' || ' '
|| opt_phy_crit;
log(banner || table_name || ' re-created...');
log(banner || table_name || ' created...');
* Utility method to help re-create a LOB column's criteria
* This allows things like the (BLOB) column chunk size to be set
FUNCTION recreateLobCriteria(table_name IN VARCHAR2, col_name IN VARCHAR2, details IN
VARCHAR2) RETURN VARCHAR IS
RETURN 'LOB (' || col_name || ') STORE AS ( ' || details || ' )';
* Utility method to re-create a primary key.
* If the key already existed it's dropped
PROCEDURE recreatePKConstraint(pk_name IN VARCHAR2, table_name IN VARCHAR2, keys IN
VARCHAR2) IS
systable CONSTANT VARCHAR(32) := 'ALL_CONSTRAINTS';
syscol CONSTANT VARCHAR(32) := 'CONSTRAINT_NAME';
banner CONSTANT VARCHAR(32) := '*** constraint ';
exist := doesExist(pk_name, systable, syscol);
log(banner || pk_name || ' already exists? ' || boolean_to_varchar2(exist));
-- drop the existing constraint
EXECUTE IMMEDIATE 'ALTER TABLE ' || table_name || ' DROP CONSTRAINT ' ||
pk_name;
-- add the new constraint
EXECUTE IMMEDIATE 'ALTER TABLE ' || table_name || ' ADD CONSTRAINT ' || pk_name ||
' PRIMARY KEY (' || keys || ' )';
log(banner || pk_name || ' re-created...');
log(banner || pk_name || ' created...');
END recreatePKConstraint;
-- 454 product-line model instance state table
-- Attribute data is represented in the data stream
-- Works across 454 product type AND versions that support
-- model state persistence
table_name := 'ne_model_state';
' node_id INT NOT NULL,' || -- node id
' model_type INT NOT NULL,' || -- model classname mapped to a unique model
class type + added user data - if needed (e.g. slot id)
' model_index INT NOT NULL,' || -- model tindex
' data BLOB DEFAULT empty_blob()' -- all attribute state
-- keep the blob chunk size down as small as possible
recreateTable(table_name, details, recreateLobCriteria(table_name, 'data', phy_crit));
-- primary key for this table consists of the following...
pk_name := table_name || '_pk'; -- convention is table_name + "_pk"
details := 'node_id, model_type, model_index';
recreatePKConstraint(pk_name, table_name, details);
-- 454 product-line model 'type' state
-- Primary attribute support is a model-type wide sequence number
table_name := 'ne_model_type';
'node_id INT NOT NULL,' || -- node id
'model_type INT NOT NULL,' || -- model classname mapped to a unique
model class type + opt user data (e.g. slot id)
'signature BLOB,' || -- can be used to store class-portion
(i.e. ObjectStreamClass part) of the object stream
'sequence_num INT' -- if you want to maintain a single one
for the whole object
recreateTable(table_name, details, '');
-- primary key for this table consists of the following...
pk_name := table_name || '_pk'; -- convention is table_name + "_pk"
details := 'node_id, model_type';
recreatePKConstraint(pk_name, table_name, details);
-- global exception handler
error_code NUMBER := SQLCODE;
error_msg VARCHAR(512) := SQLERRM;
-- log errors to DBMS output
DBMS_OUTPUT.PUT_LINE('err: ' || TO_CHAR(error_code) || ' : ' || error_msg);
CREATE OR REPLACE PACKAGE BODY ot_memfp IS
* @return sequence number partition representative
FUNCTION sequence_num_part(model_type IN INTEGER) RETURN INTEGER IS
result := c_part * FLOOR(model_type / c_part);
* @return lowest # item in partition
FUNCTION low_part(model_type IN INTEGER) RETURN INTEGER IS
result := sequence_num_part(model_type);
* @return highest # item in partition
FUNCTION high_part(model_type IN INTEGER) RETURN INTEGER IS
result := low_part(model_type) + c_part - 1;
* @return move a model_type into a new partition as identified by the new_seq_num
FUNCTION move_part(new_seq_num IN INTEGER, old_model_type IN INTEGER) RETURN INTEGER
IS
result := c_part * ROUND(new_seq_num / c_part, 0) + (old_model_type MOD c_part);
* stored procedure to change node id. If new_node_id already exists,
* @return -1 if new_node_id already exists / 0 if runs 100% to completion
PROCEDURE change_node_id(old_node_id IN INTEGER, new_node_id IN INTEGER, status OUT
INTEGER) IS
ok CONSTANT INTEGER := 0;
no_change CONSTANT INTEGER := 1;
new_id_already_exists CONSTANT INTEGER := -1;
IF (old_node_id = new_node_id) THEN
-- new node id should not already exist
SELECT 1 INTO tmp FROM ne_model_type
WHERE EXISTS (SELECT 1 FROM ne_model_type WHERE node_id = new_node_id);
WHEN NO_DATA_FOUND THEN NULL; -- ignore 'SELECT INTO' except. when no rows
selected
WHEN TOO_MANY_ROWS THEN tmp := 1; -- set tmp to 1 'SELECT INTO' except. when
>1 rows selected
exist := NOT tmp IS NULL;
status := new_id_already_exists;
SET node_id = new_node_id
WHERE node_id = old_node_id;
* procedure to update the sequence number. The procedure takes
* care of the conversion of model type to sequence # model type
* @return corr. update count i.e. # of rows effected
PROCEDURE update_seq_num(nid IN INTEGER, mtype IN INTEGER, seq_num INTEGER) IS
seq_num_model_type INTEGER;
seq_num_model_type := sequence_num_part(mtype);
UPDATE ne_model_type SET sequence_num = seq_num
WHERE node_id = nid AND model_type = seq_num_model_type;
INSERT INTO ne_model_type (node_id, model_type, sequence_num)
VALUES (nid, seq_num_model_type, seq_num); -- try inserting instead
* stored procedure to update the sequence number. The procedure takes
* care of the conversion of model type to sequence # model type
PROCEDURE get_seq_num(nid IN INTEGER, mtype IN INTEGER, result IN OUT INTEGER) IS
seq_num_model_type INTEGER;
seq_num_model_type := sequence_num_part(mtype);
SELECT sequence_num INTO result FROM ne_model_type
WHERE node_id = nid AND model_type = seq_num_model_type;
WHEN NO_DATA_FOUND THEN NULL; -- ignore 'SELECT INTO' except. when no rows
selected
* stored procedure to delete the entire partition identified by mtype
# last-changed seq # is reset for the assoc. slot
PROCEDURE del_partition(nid IN INTEGER, mtype IN INTEGER, rowcount OUT INTEGER) IS
high := high_part(mtype);
SET sequence_num = uninit_seq_num
WHERE node_id = nid AND low <= model_type AND model_type <= high;
DELETE FROM ne_model_state
WHERE node_id = nid AND low <= model_type AND model_type <= high;
rowcount := SQL%ROWCOUNT;
* creates an empty blob (if one does not already exist)
PROCEDURE insert_empty_blob(nid IN INTEGER, mtype IN INTEGER, ndx IN INTEGER) IS
INSERT into ne_model_state (node_id, model_type, model_index, data)
VALUES (nid, mtype, ndx, empty_blob());
-- global exception handler
WHEN DUP_VAL_ON_INDEX THEN NULL; -- ignore err if a corr. row already exists
3.1.14 PortName
CREATE or REPLACE PROCEDURE PortName
(p_nedbaccessid IN number,
o_portname varchar2(256);
SELECT col200 INTO o_portname
WHERE nedbaccessid=p_nedbaccessid
AND physicalloc=p_physicalloc
AND moduleType=p_moduletype
AND objectindex=p_objectindex;
p_portname := o_portname;
3.1.15 Prune_NE
create or replace procedure prune_ne
prune_process_state number :=0;
rows_deleted number:=3000;
rows_processed number:=0;
rows_deleted_total number:=0;
statement_txt varchar2(500);
CURSOR IsGne(p_nesysid IN ne_info_table.nesysid%TYPE) IS
WHERE gnesysid=p_nesysid;
r_gneid ne_info_table.gneid%TYPE;
INVALID_NESYSID EXCEPTION;
PRAGMA EXCEPTION_INIT (INVALID_NESYSID, -20003);
PRAGMA EXCEPTION_INIT (PRUNE_FAILED, -20004);
SELECT activevalue INTO ORACLE_SID
WHERE sectionname='database' and propertyname='dbname';
/* Check if this ne is a GNE and if it has nes */
FETCH IsGne INTO r_gneid;
dbms_output.put_line('This is a GNE , check if it has children');
SELECT count(*) INTO counter
dbms_output.put_line('This GNE has the following Children.');
FOR rec IN (SELECT nesysid FROM ne_info_table
WHERE gneid=r_gneid and nesysid <> p_nesysid ) LOOP
dbms_output.put_line('NE: '||rec.nesysid);
dbms_output.put_line('Can not delete a GNE that has children!');
create_file('/oraclesw9i/admin/'||ORACLE_SID||'/udump','prune_ne'||p_nesysid||'.log','
Can not delete a GNE that has children!');
IF (prune_process_state=0) THEN
dbms_output.put_line('process prune this nesysid');
SELECT to_char(sysdate,'MM/DD/YYYY HH24:MI:SS') INTO prune_date FROM dual;
create_file('/oraclesw9i/admin/'||ORACLE_SID||'/udump','prune_ne'||p_nesysid||'.log','
Process prune '||p_nesysid||' at '||prune_date);
/* get the nedbaccessid from nesysid */
SELECT nedbaccessid, nenodeid INTO p_nedbaccessid, p_nenodeid
/* get a list of table name that has nedbaccessid column from data
dictionary
|| and prune data from each table
FOR i IN ( SELECT a.table_name,a.column_name
WHERE a.table_name = b.object_name
AND b.object_type='TABLE'
AND ((a.column_name like 'NEDBACCESSID%' and a.column_name !=
'NEDBACCESSIDCOLINDB') OR
a.column_name='CKTNODEID' OR
a.column_name='CHILDID' OR
a.column_name='GROUPORNEID'))
SELECT decode(i.table_name,'NE_INFO_TABLE' ,1,
0) INTO
prune_state FROM dual;
IF (prune_state = 0 ) THEN
cursor_handle := DBMS_SQL.OPEN_CURSOR;
IF (i.table_name='ACTIVE_ALARM_TABLE') THEN
statement_txt := 'DELETE FROM '||i.table_name ||' Where
nedbaccessid = '||p_nedbaccessid ||
' OR (nedbaccessid=0 and activealarmtype
not in (5003,5012) AND ModuleOrIfIndex='||p_nedbaccessid||' )
AND rownum < = '||rows_deleted;
IF (i.column_name like 'NEDBACCESSID%' and
i.table_name<>'ACTIVE_ALARM_TABLE') THEN
statement_txt := 'DELETE FROM '||i.table_name ||' Where
'||i.column_name ||' = '||p_nedbaccessid ||
' AND rownum < = '||rows_deleted;
-- purge all circuit tables based on cktnodeid
IF (i.column_name='CKTNODEID' ) THEN
statement_txt := 'DELETE FROM '||i.table_name ||' Where
cktnodeid = '||p_nenodeid ||
' AND rownum < = '||rows_deleted;
IF (i.column_name='CHILDID') THEN
statement_txt :='DELETE FROM '||i.table_name||
' WHERE childtype=3 AND childid =
'||p_nedbaccessid||
' AND rownum < = '||rows_deleted;
-- this is user_map_table
IF (i.column_name='GROUPORNEID') THEN
statement_txt := 'DELETE FROM '||i.table_name ||
' WHERE treenodetype=3 AND grouporneid =
'||p_nedbaccessid||
' AND rownum <= '||rows_deleted;
DBMS_SQL.PARSE(cursor_handle, statement_txt, DBMS_SQL.NATIVE);
rows_processed:=DBMS_SQL.EXECUTE(cursor_handle);
rows_deleted_total:=rows_deleted_total+rows_processed;
DBMS_SQL.CLOSE_CURSOR (cursor_handle);
append_file('/oraclesw9i/admin/'||ORACLE_SID||'/udump','prune_ne'||p_nesysid||'.log','
Deleted rows committed '||rows_deleted_total||' from '||i.table_name);
/* prune CIRCUIT_DEST_TBL based on CktDestNodeId */
IF ( p_nenodeid != 0 ) THEN
FOR rec IN ( SELECT rowid,cktnodeid,cktuniqueid FROM CIRCUIT_DEST_TBL
WHERE CktDestNodeId=p_nenodeid)
DELETE FROM CIRCUIT_DEST_TBL
/* UPDATE state of the circuits associated with this destination
to incomplete */
WHERE cktnodeid=rec.cktnodeid
AND cktuniqueid=rec.cktuniqueid
IF mod(counter,300) = 0 THEN
--DBMS_output.PUT_LINE('------Deleted rows committed: '||counter||' from
CIRCUIT_DEST_TBL');
append_file('/oraclesw9i/admin/'||ORACLE_SID||'/udump','prune_ne'||p_nesysid||'.log','
Deleted rows committed '||counter||' from CIRCUIT_DEST_TBL');
/* prune CIRCUIT_SPAN_TBL based on CktSpanSrcNodeId and CktSpanDestNodeId
*/
FOR rec IN ( SELECT rowid,cktnodeid, cktuniqueid FROM CIRCUIT_SPAN_TBL
WHERE CktSpanSrcNodeId=p_nenodeid
OR CktSpanDestNodeId=p_nenodeid)
DELETE FROM CIRCUIT_SPAN_TBL
/* UPDATE the state of the circuits associated with the span to
incomplete */
WHERE cktnodeid=rec.cktnodeid
AND cktuniqueid=rec.cktuniqueid
IF mod(counter,300) = 0 THEN
--DBMS_output.PUT_LINE('------Deleted rows committed: '||counter||' from
CIRCUIT_SPAN_TBL');
append_file('/oraclesw9i/admin/'||ORACLE_SID||'/udump','prune_ne'||p_nesysid||'.log','
Deleted rows committed '||counter||' from CIRCUIT_SPAN_TBL');
/* prune ONS155XX_GRANULAR_CC_TBL based on GCCSrcNodeId and GCCDestNodeId
*/
FOR rec IN ( SELECT rowid FROM ONS155XX_GRANULAR_CC_TBL
WHERE GCCSrcNodeId=p_nedbaccessid
OR GCCDestNodeId=p_nedbaccessid)
DELETE FROM ONS155XX_GRANULAR_CC_TBL
IF mod(counter,300) = 0 THEN
--DBMS_output.PUT_LINE('------Deleted rows committed: '||counter||' from
ONS155XX_GRANULAR_CC_TBL');
append_file('/oraclesw9i/admin/'||ORACLE_SID||'/udump','prune_ne'||p_nesysid||'.log','
Deleted rows committed '||counter||' from ONS155XX_GRANULAR_CC_TBL');
/* prune ONS155XX_CIRCUIT_CC_TBL based on CktCCNodeId */
FOR rec IN ( SELECT rowid,cktnodeid, cktuniqueid FROM
ONS155XX_CIRCUIT_CC_TBL
WHERE CktCCNodeId=p_nedbaccessid )
DELETE FROM ONS155XX_CIRCUIT_CC_TBL
/* UPDATE the state of the circuits associated with the span to
incomplete */
WHERE cktnodeid=rec.cktnodeid
AND cktuniqueid=rec.cktuniqueid
IF mod(counter,300) = 0 THEN
--DBMS_output.PUT_LINE('------Deleted rows committed: '||counter||' from
ONS155XX_CIRCUIT_CC_TBL');
append_file('/oraclesw9i/admin/'||ORACLE_SID||'/udump','prune_ne'||p_nesysid||'.log','
Deleted rows committed '||counter||' from ONS155XX_CIRCUIT_CC_TBL');
/* prune ONS155XX_PATH_TBL based on PATHSrcNodeId and PATHDestNodeId */
FOR rec IN ( SELECT rowid FROM ONS155XX_PATH_TBL
WHERE PathSrcNodeId=p_nedbaccessid
OR PathDestNodeId=p_nedbaccessid)
DELETE FROM ONS155XX_PATH_TBL
IF mod(counter,300) = 0 THEN
--DBMS_output.PUT_LINE('------Deleted rows committed: '||counter||' from
ONS155XX_PATH_TBL');
append_file('/oraclesw9i/admin/'||ORACLE_SID||'/udump','prune_ne'||p_nesysid||'.log','
Deleted rows committed '||counter||' from ONS155XX_PATH_TBL');
/* prune data from link_table */
FOR rec IN ( SELECT rowid FROM link_table
WHERE linksrcnode=p_nedbaccessid OR
linkdstnode=p_nedbaccessid)
IF mod(counter,300) = 0 THEN
--DBMS_output.PUT_LINE('------Deleted rows committed: '||counter||' from
link_table');
append_file('/oraclesw9i/admin/'||ORACLE_SID||'/udump','prune_ne'||p_nesysid||'.log','
Deleted rows committed '||counter||' from link_table');
/* prune data from ne_info_table */
DELETE from ne_info_table
WHERE nedbaccessid=p_nedbaccessid;
--DBMS_output.PUT_LINE('------Deleted rows committed: '||counter||' from
ne_info_table');
append_file('/oraclesw9i/admin/'||ORACLE_SID||'/udump','prune_ne'||p_nesysid||'.log','
Deleted rows committed '||counter||' from ne_info_table');
WHERE gnesysid=p_nesysid;
prune_date:=to_char(sysdate,'MM/DD/YYYY HH24:MI:SS');
append_file('/oraclesw9i/admin/'||ORACLE_SID||'/udump','prune_ne'||p_nesysid||'.log','
prune '||p_nesysid||' is finished successfully at '||prune_date);
DBMS_OUTPUT.PUT_LINE('No such network element');
append_file('/oraclesw9i/admin/'||ORACLE_SID||'/udump','prune_ne'||p_nesysid||'.log','
No such network element');
DBMS_OUTPUT.PUT_LINE(SQLERRM);
DBMS_OUTPUT.PUT_LINE(SQLCODE);
DBMS_OUTPUT.PUT_LINE('Error in pruning NE!');
append_file('/oraclesw9i/admin/'||ORACLE_SID||'/udump','prune_ne'||p_nesysid||'.log','
Error in pruning NE!'||SQLERRM||','||SQLCODE);
3.1.16 Prune_PM
3.1.16.1 Prune_PM Procedure for Small Configurations
Create or replace procedure prune_pm (
is24h_flag IN number default(2)
rows_processed number := 0;
statement_txt varchar2(500);
TYPE rowid_tab is TABLE OF ROWID INDEX BY BINARY_INTEGER;
rows_to_be_deleted number := 100000;
SELECT activevalue INTO ORACLE_SID
WHERE sectionname='database' and propertyname='dbname';
LOGDIR := '/oraclesw9i/admin/' || ORACLE_SID || '/udump';
if ( is24h_flag = 0 ) then
LOGFILE := 'prune_15min_pm.log';
elsif ( is24h_flag = 1 ) then
LOGFILE := 'prune_1day_pm.log';
elsif ( is24h_flag = 2 ) then
LOGFILE := 'prune_both_pm.log';
LOGFILE := 'prune_pm.log';
IF ( intervaldays != -1) THEN
prunedate:=sysdate-intervaldays;
dbms_output.put_line('prune data before '||prunedate);
create_file(LOGDIR, LOGFILE,'Starting prune pm at '||sysdate);
append_file(LOGDIR, LOGFILE,'prune pm data before '||prunedate);
execute_statement('set transaction use rollback segment
','RB_huge','','','');
append_file(LOGDIR, LOGFILE,'pruning "15min" pm data only at '||sysdate);
elsif (is24h_flag = 1) then
append_file(LOGDIR, LOGFILE,'pruning "1day" pm data only at '||sysdate);
append_file(LOGDIR, LOGFILE,'pruning both "15min" and "1day" pm data at
'||sysdate);
FOR i IN (select /*+ INDEX_FFS(ONS15454DS3_TIMESTAMP_I) */ rowid from
ons15454_ds3_pm_table
where timestamp < prunedate and rownum <= rows_to_be_deleted
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ons15454_ds3_pm_table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(ONS15454DS3_TIMESTAMP_I) */ rowid from
ons15454_ds3_pm_table
where timestamp < prunedate and rownum <= rows_to_be_deleted
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ons15454_ds3_pm_table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
IF counter < rows_to_be_deleted THEN
FORALL rid IN 1. .. counter
DELETE FROM ons15454_ds3_pm_table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ons15454_DS3_PM_table at '||sysdate );
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(ONS15454PATH_TIMESTAMP_INDEX) */ rowid from
ons15454_sonet_path_pm_table
where timestamp < prunedate AND rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ons15454_sonet_path_pm_table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(ONS15454PATH_TIMESTAMP_INDEX) */ rowid from
ons15454_sonet_path_pm_table
where timestamp < prunedate AND rownum <= rows_to_be_deleted
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ons15454_sonet_path_pm_table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
IF counter < rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment ','RB_BIG',
'','','');
FORALL rid IN 1 .. counter
DELETE FROM ons15454_sonet_path_pm_table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS15454_SONET_PATH_PM_TABLE at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(ONS15454LINE_TIMESTAMP_I) */ rowid from
ons15454_sonet_line_pm_table
where timestamp < prunedate and rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ons15454_sonet_line_pm_table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(ONS15454LINE_TIMESTAMP_I) */ rowid from
ons15454_sonet_line_pm_table
where timestamp < prunedate and rownum <= rows_to_be_deleted
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ons15454_sonet_line_pm_table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
execute_statement('set transaction use rollback segment ','RB_BIG','','','');
IF counter < rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ons15454_sonet_line_pm_table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS15454_SONET_LINE_PM_TABLE at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(ONS15454SEC_TIMESTAMP_I) */ rowid from
ons15454_sonet_sec_pm_table
where timestamp < prunedate AND rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ons15454_sonet_sec_pm_table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(ONS15454SEC_TIMESTAMP_I) */ rowid from
ons15454_sonet_sec_pm_table
where timestamp < prunedate AND rownum <= rows_to_be_deleted
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ons15454_sonet_sec_pm_table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
IF counter < rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ons15454_sonet_sec_pm_table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS15454_SONET_SEC_PM_TABLE at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(ONS15454ENET_TIMESTAMP_I) */ rowid from
ons15454_enet_pm_table
where timestamp < prunedate AND rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
IF counter = rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ons15454_enet_pm_table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(ONS15454ENET_TIMESTAMP_I) */ rowid from
ons15454_enet_pm_table
where timestamp < prunedate AND rownum <= rows_to_be_deleted
rowid_tab_v(counter) := i.rowid;
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
IF counter = rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ons15454_enet_pm_table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
IF counter < rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ons15454_enet_pm_table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS15454_ENET_PM_TABLE at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(ONS15454DS1_TIMESTAMP_I) */ rowid from
ons15454_ds1_pm_table
where timestamp < prunedate AND rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
IF counter = rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS15454_DS1_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(ONS15454DS1_TIMESTAMP_I) */ rowid from
ons15454_ds1_pm_table
where timestamp < prunedate AND rownum <= rows_to_be_deleted
rowid_tab_v(counter) := i.rowid;
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
IF counter = rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS15454_DS1_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
execute_statement('set transaction use rollback segment ','RB_BIG','','','');
IF counter < rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS15454_DS1_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS15454_DS1_PM_TABLE at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(ONS15454VT_TIMESTAMP_INDEX) */ rowid from
ONS15454_Sonet_VT_PM_Table
where TimeStamp < prunedate AND rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
IF counter = rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS15454_Sonet_VT_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(ONS15454VT_TIMESTAMP_INDEX) */ rowid from
ONS15454_Sonet_VT_PM_Table
where TimeStamp < prunedate AND rownum <= rows_to_be_deleted
rowid_tab_v(counter) := i.rowid;
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
IF counter = rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS15454_Sonet_VT_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
execute_statement('set transaction use rollback segment ','RB_BIG','','','');
IF counter < rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS15454_Sonet_VT_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS15454_Sonet_VT_PM_Table at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(ONS1454SDHRS_TIMESTAMP_I) */ rowid from
ONS15454SDH_RS_PM_Table
where TimeStamp < prunedate AND rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
IF counter = rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS15454SDH_RS_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(ONS1454SDHRS_TIMESTAMP_I) */ rowid from
ONS15454SDH_RS_PM_Table
where TimeStamp < prunedate AND rownum <= rows_to_be_deleted
rowid_tab_v(counter) := i.rowid;
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
IF counter = rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS15454SDH_RS_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
execute_statement('set transaction use rollback segment ','RB_BIG','','','');
IF counter < rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS15454SDH_RS_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS15454SDH_RS_PM_Table at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(ONS15454SDHMS_TIMESTAMP_I) */ rowid from
ONS15454SDH_MS_PM_Table
where TimeStamp < prunedate AND rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
IF counter = rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS15454SDH_MS_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(ONS15454SDHMS_TIMESTAMP_I) */ rowid from
ONS15454SDH_MS_PM_Table
where TimeStamp < prunedate AND rownum <= rows_to_be_deleted
rowid_tab_v(counter) := i.rowid;
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
IF counter = rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS15454SDH_MS_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
execute_statement('set transaction use rollback segment ','RB_BIG','','','');
IF counter < rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS15454SDH_MS_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS15454SDH_MS_PM_Table at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(ONS15454SDHHO_TIMESTAMP_I) */ rowid from
ONS15454SDH_HO_PM_Table
where TimeStamp < prunedate AND rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
IF counter = rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS15454SDH_HO_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(ONS15454SDHHO_TIMESTAMP_I) */ rowid from
ONS15454SDH_HO_PM_Table
where TimeStamp < prunedate AND rownum <= rows_to_be_deleted
rowid_tab_v(counter) := i.rowid;
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
IF counter = rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS15454SDH_HO_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
execute_statement('set transaction use rollback segment ','RB_BIG','','','');
IF counter < rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS15454SDH_HO_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS15454SDH_HO_PM_Table at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(ONS15454SDHLO_TIMESTAMP_I) */ rowid from
ONS15454SDH_LO_PM_Table
where TimeStamp < prunedate AND rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
IF counter = rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS15454SDH_LO_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(ONS15454SDHLO_TIMESTAMP_I) */ rowid from
ONS15454SDH_LO_PM_Table
where TimeStamp < prunedate AND rownum <= rows_to_be_deleted
rowid_tab_v(counter) := i.rowid;
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
IF counter = rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS15454SDH_LO_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
execute_statement('set transaction use rollback segment ','RB_BIG','','','');
IF counter < rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS15454SDH_LO_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS15454SDH_LO_PM_Table at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(ONS15454SDHE1_TIMESTAMP_I) */ rowid from
ONS15454SDH_E1_PM_Table
where TimeStamp < prunedate AND rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
IF counter = rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS15454SDH_E1_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(ONS15454SDHE1_TIMESTAMP_I) */ rowid from
ONS15454SDH_E1_PM_Table
where TimeStamp < prunedate AND rownum <= rows_to_be_deleted
rowid_tab_v(counter) := i.rowid;
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
IF counter = rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS15454SDH_E1_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
execute_statement('set transaction use rollback segment ','RB_BIG','','','');
IF counter < rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS15454SDH_E1_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS15454SDH_E1_PM_Table at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(ONS15454SDHE3_TIMESTAMP_I) */ rowid from
ONS15454SDH_E3_PM_Table
where TimeStamp < prunedate AND rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
IF counter = rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS15454SDH_E3_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(ONS15454SDHE3_TIMESTAMP_I) */ rowid from
ONS15454SDH_E3_PM_Table
where TimeStamp < prunedate AND rownum <= rows_to_be_deleted
rowid_tab_v(counter) := i.rowid;
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
IF counter = rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS15454SDH_E3_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
execute_statement('set transaction use rollback segment ','RB_BIG','','','');
IF counter < rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS15454SDH_E3_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS15454SDH_E3_PM_Table at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(ONS15454SDHE4_TIMESTAMP_I) */ rowid from
ONS15454SDH_E4_PM_Table
where TimeStamp < prunedate AND rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
IF counter = rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS15454SDH_E4_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(ONS15454SDHE4_TIMESTAMP_I) */ rowid from
ONS15454SDH_E4_PM_Table
where TimeStamp < prunedate AND rownum <= rows_to_be_deleted
rowid_tab_v(counter) := i.rowid;
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
IF counter = rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS15454SDH_E4_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
execute_statement('set transaction use rollback segment ','RB_BIG','','','');
IF counter < rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS15454SDH_E4_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS15454SDH_E4_PM_Table at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(ONS155xx_SEC_PM_TS_INDEX) */ rowid from
ONS155XX_SONET_SEC_PM_TABLE
where TimeStamp < prunedate and rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS155XX_SONET_SEC_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(ONS155xx_SEC_PM_TS_INDEX) */ rowid from
ONS155XX_SONET_SEC_PM_TABLE
where TimeStamp < prunedate and rownum <= rows_to_be_deleted
and interval = is24h_flag
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS155XX_SONET_SEC_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
IF counter < rows_to_be_deleted THEN
FORALL rid IN 1. .. counter
DELETE FROM ONS155XX_SONET_SEC_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS155XX_SONET_SEC_PM_TABLE at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(ONS155xx_PHY_PM_TS_INDEX) */ rowid from
ONS155xx_Phy_PM_Table
where TimeStamp < prunedate and rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS155xx_Phy_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(ONS155xx_PHY_PM_TS_INDEX) */ rowid from
ONS155xx_Phy_PM_Table
where TimeStamp < prunedate and rownum <= rows_to_be_deleted
and interval = is24h_flag
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS155xx_Phy_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
IF counter < rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS155xx_Phy_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS155xx_Phy_PM_Table at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(ONS155XX_OPT_POWER_PM_TS_INDEX) */ rowid
from ONS155xx_Opt_Power_PM_Table
where TimeStamp < prunedate and rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS155xx_Opt_Power_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(ONS155XX_OPT_POWER_PM_TS_INDEX) */ rowid
from ONS155xx_Opt_Power_PM_Table
where TimeStamp < prunedate and rownum <= rows_to_be_deleted
and interval = is24h_flag
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS155xx_Opt_Power_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
IF counter < rows_to_be_deleted THEN
FORALL rid IN 1. .. counter
DELETE FROM ONS155xx_Opt_Power_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS155xx_Opt_Power_PM_Table at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(ONS15501_OPT_POWER_PM_TS_INDEX) */ rowid
from ONS15501_Opt_Power_PM_Table
where TimeStamp < prunedate and rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS15501_Opt_Power_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(ONS15501_OPT_POWER_PM_TS_INDEX) */ rowid
from ONS15501_Opt_Power_PM_Table
where TimeStamp < prunedate and rownum <= rows_to_be_deleted
and interval = is24h_flag
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS15501_Opt_Power_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
IF counter < rows_to_be_deleted THEN
FORALL rid IN 1. .. counter
DELETE FROM ONS15501_Opt_Power_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS15501_Opt_Power_PM_Table at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(ONS155xx_CDL_PM_TS_INDEX) */ rowid from
ONS155xx_CDL_PM_Table
where TimeStamp < prunedate and rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS155xx_CDL_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(ONS155xx_CDL_PM_TS_INDEX) */ rowid from
ONS155xx_CDL_PM_Table
where TimeStamp < prunedate and rownum <= rows_to_be_deleted
and interval = is24h_flag
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS155xx_CDL_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
IF counter < rows_to_be_deleted THEN
FORALL rid IN 1. .. counter
DELETE FROM ONS155xx_CDL_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS155xx_CDL_PM_Table at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(ONS155XX_ETHER_HIST_TS_INDEX) */ rowid from
ONS155xx_Ether_Hist_PM_Table
where TimeStamp < prunedate and rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS155xx_Ether_Hist_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(ONS155XX_ETHER_HIST_TS_INDEX) */ rowid from
ONS155xx_Ether_Hist_PM_Table
where TimeStamp < prunedate and rownum <= rows_to_be_deleted
and interval = is24h_flag
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS155xx_Ether_Hist_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
IF counter < rows_to_be_deleted THEN
FORALL rid IN 1. .. counter
DELETE FROM ONS155xx_Ether_Hist_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS155xx_Ether_Hist_PM_Table at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(ONS155XX_FCM_PE_TS_INDEX) */ rowid from
ONS155xx_FCM_PE_PM_Table
where TimeStamp < prunedate and rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS155xx_FCM_PE_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(ONS155XX_FCM_PE_TS_INDEX) */ rowid from
ONS155xx_FCM_PE_PM_Table
where TimeStamp < prunedate and rownum <= rows_to_be_deleted
and interval = is24h_flag
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS155xx_FCM_PE_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
IF counter < rows_to_be_deleted THEN
FORALL rid IN 1. .. counter
DELETE FROM ONS155xx_FCM_PE_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS155xx_FCM_PE_PM_Table at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(P_IOC_W_PM_TBL_TSTAMP_IDX_I) */ rowid from
ONS158XX_IOC_W_PM_TABLE
where TimeStamp < prunedate and rownum <= rows_to_be_deleted
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_IOC_W_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(P_IOC_W_PM_TBL_TSTAMP_IDX_I) */ rowid from
ONS158XX_IOC_W_PM_TABLE
where TimeStamp < prunedate and rownum <= rows_to_be_deleted
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_IOC_W_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
IF counter < rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_IOC_W_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS158XX_IOC_W_PM_TABLE at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(P_TRANSPON_PM_TBL_TSTAMP_IDX_I) */ rowid
from ONS158XX_TRANSPONDER_PM_TABLE
where TimeStamp < prunedate and rownum <= rows_to_be_deleted ) LOOP
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_TRANSPONDER_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(P_TRANSPON_PM_TBL_TSTAMP_IDX_I) */ rowid
from ONS158XX_TRANSPONDER_PM_TABLE
where TimeStamp < prunedate and rownum <= rows_to_be_deleted
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_TRANSPONDER_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
IF counter < rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_TRANSPONDER_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS158XX_TRANSPONDER_PM_TABLE at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(P_LSM_PM_TBL_TSTAMP_IDX_I) */ rowid from
ONS158XX_LSM_PM_TABLE
where TimeStamp < prunedate and rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_LSM_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(P_LSM_PM_TBL_TSTAMP_IDX_I) */ rowid from
ONS158XX_LSM_PM_TABLE
where TimeStamp < prunedate and rownum <= rows_to_be_deleted
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_LSM_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
IF counter < rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_LSM_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS158XX_LSM_PM_TABLE at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(P_SCF_PM_TBL_TSTAMP_IDX_I) */ rowid from
ONS158XX_SCF_PM_TABLE
where TimeStamp < prunedate and rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_SCF_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(P_SCF_PM_TBL_TSTAMP_IDX_I) */ rowid from
ONS158XX_SCF_PM_TABLE
where TimeStamp < prunedate and rownum <= rows_to_be_deleted
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_SCF_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
IF counter < rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_SCF_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS158XX_SCF_PM_TABLE at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(P_AMP_PM_TBL_TSTAMP_IDX_I) */ rowid from
ONS158XX_AMPLIFIER_PM_TABLE
where TimeStamp < prunedate and rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_AMPLIFIER_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(P_AMP_PM_TBL_TSTAMP_IDX_I) */ rowid from
ONS158XX_AMPLIFIER_PM_TABLE
where TimeStamp < prunedate and rownum <= rows_to_be_deleted
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_AMPLIFIER_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
IF counter < rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_AMPLIFIER_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS158XX_AMPLIFIER_PM_TABLE at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(P_WD_PM_TBL_TSTAMP_IDX_I) */ rowid from
ONS158XX_WD_PM_TABLE
where TimeStamp < prunedate and rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_WD_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(P_WD_PM_TBL_TSTAMP_IDX_I) */ rowid from
ONS158XX_WD_PM_TABLE
where TimeStamp < prunedate and rownum <= rows_to_be_deleted
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_WD_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
IF counter < rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_WD_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS158XX_WD_PM_TABLE at '|| sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(P_OADM_PM_TBL_TSTAMP_IDX_I) */ rowid from
ONS158XX_OADM_PM_TABLE
where TimeStamp < prunedate and rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_OADM_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(P_OADM_PM_TBL_TSTAMP_IDX_I) */ rowid from
ONS158XX_OADM_PM_TABLE
where TimeStamp < prunedate and rownum <= rows_to_be_deleted
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_OADM_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
IF counter < rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_OADM_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS158XX_OADM_PM_TABLE at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(P_WD_PM_RX_TBL_TSTAMP_IDX_I) */ rowid from
ONS158XX_WD_RX_PM_TABLE
where TimeStamp < prunedate and rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_WD_RX_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(P_WD_PM_RX_TBL_TSTAMP_IDX_I) */ rowid from
ONS158XX_WD_RX_PM_TABLE
where TimeStamp < prunedate and rownum <= rows_to_be_deleted
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_WD_RX_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
IF counter < rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_WD_RX_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS158XX_WD_RX_PM_TABLE at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(P_OSU_PM_TBL_TSTAMP_IDX_I) */ rowid from
ONS158XX_OSU_PM_TABLE
where TimeStamp < prunedate and rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_OSU_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(P_OSU_PM_TBL_TSTAMP_IDX_I) */ rowid from
ONS158XX_OSU_PM_TABLE
where TimeStamp < prunedate and rownum <= rows_to_be_deleted
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_OSU_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
IF counter < rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_OSU_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS158XX_OSU_PM_TABLE at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(P_BCS_PM_TBL_TSTAMP_IDX_I) */ rowid from
ONS158XX_BCS_PM_TABLE
where TimeStamp < prunedate and rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_BCS_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(P_BCS_PM_TBL_TSTAMP_IDX_I) */ rowid from
ONS158XX_BCS_PM_TABLE
where TimeStamp < prunedate and rownum <= rows_to_be_deleted
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_BCS_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
IF counter < rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_BCS_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS158XX_BCS_PM_TABLE at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(P_OAD_PM_TBL_TSTAMP_IDX_I) */ rowid from
ONS158XX_OAD_PM_TABLE
where TimeStamp < prunedate and rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_OAD_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(P_OAD_PM_TBL_TSTAMP_IDX_I) */ rowid from
ONS158XX_OAD_PM_TABLE
where TimeStamp < prunedate and rownum <= rows_to_be_deleted
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_OAD_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
IF counter < rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_OAD_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS158XX_OAD_PM_TABLE at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(P_CMP_PM_Tbl_TStamp_idx_i) */ rowid from
ONS158XX_CMP_PM_TABLE
where TimeStamp < prunedate and rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_CMP_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(P_CMP_PM_Tbl_TStamp_idx_i) */ rowid from
ONS158XX_CMP_PM_TABLE
where TimeStamp < prunedate and rownum <= rows_to_be_deleted
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_CMP_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
IF counter < rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS158XX_CMP_PM_TABLE
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS158XX_CMP_PM_TABLE at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(ONS15600SEC_TIMESTAMP_I) */ rowid from
ONS15600_Sonet_Sec_PM_Table
where TimeStamp < prunedate and rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS15600_Sonet_Sec_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(ONS15600SEC_TIMESTAMP_I) */ rowid from
ONS15600_Sonet_Sec_PM_Table
where TimeStamp < prunedate and rownum <= rows_to_be_deleted
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS15600_Sonet_Sec_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
IF counter < rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS15600_Sonet_Sec_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS15600_Sonet_Sec_PM_TABLE at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(ONS15600LINE_TIMESTAMP_I) */ rowid from
ONS15600_Sonet_Line_PM_Table
where TimeStamp < prunedate and rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS15600_Sonet_Line_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
FOR i IN (select /*+ INDEX_FFS(ONS15600LINE_TIMESTAMP_I) */ rowid from
ONS15600_Sonet_Line_PM_Table
where TimeStamp < prunedate and rownum <= rows_to_be_deleted
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN
execute_statement('set transaction use rollback segment
','RB_BIG','','','');
FORALL rid IN 1 .. counter
DELETE FROM ONS15600_Sonet_Line_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
IF counter < rows_to_be_deleted THEN
FORALL rid IN 1 .. counter
DELETE FROM ONS15600_Sonet_Line_PM_Table
WHERE rowid = rowid_tab_v(rid);
rows_processed:=rows_processed+counter;
append_file(LOGDIR, LOGFILE,'Deleted '||rows_processed||' rows from
ONS15600_Sonet_Line_PM_Table at '||sysdate);
execute_statement('set transaction use rollback segment
','RB_HUGE','','','');
FOR i IN (select /*+ INDEX_FFS(ONS15600Path_TIMESTAMP_INDEX) */ rowid from
ONS15600_Sonet_Path_PM_Table
where TimeStamp < prunedate and rownum <= rows_to_be_deleted) LOOP
rowid_tab_v(counter) := i.rowid;
IF counter = rows_to_be_deleted THEN