PL/SQL procedure--------------please help----what is it ?? explain brief

(TO_DATE('&2')-1)
CREATE OR REPLACE PROCEDURE GAT_SVC_ACTIVITY(REFDATE IN DATE:=SYSDATE-1,
MSK IN INTEGER:=31)
AS
--DECLARE
V_COUNT NUMBER :=0;
V_LIMIT NUMBER :=0;
V_SOURCE_SITE_ID NUMBER :=0;
V_SOURCE_SITE_ID_N NUMBER := NULL;
V_CUSSOR INTEGER;
V_PROCESSED INTEGER;
V_ERRDESC VARCHAR2(200);
CURSOR C_TMP_ONSITE IS SELECT
X.*,
CLH.DATE_CODE CLH_DATE_CODE,
CLH.DPS_NBR CLH_DPS_NBR,
CLH.CASE_NUM CLH_CASE_NUM,
CLH.FLG_DELLSRV CLH_FLG_DELLSRV,
2 SVC_ACTIVITY_SRC_ID
FROM (SELECT
OS.DPS_NBR,
OS.ARRIVE_TIMESTAMP,
OS.COMPL_TIMESTAMP,
OS.STATUS_CODE,
OS.PROBLEM_CODE,
OS.CAUSE_CODE,
OS.ACTION_CODE,
JH.DPS_NBR JH_DPS_NBR,
JH.DPS_TYPE JH_DPS_TYPE,
NVL2(TRIM(JH.TPM_CODE),TRIM(JH.TPM_CODE),'DELL') JH_TPM_CODE
FROM (SELECT * FROM TEMP_ONSITE WHERE DPS_NBR IS NOT NULL
AND ARRIVE_TIMESTAMP IS NOT NULL
AND COMPL_TIMESTAMP IS NOT NULL
AND STATUS_CODE IS NOT NULL
AND STATUS_CODE_DESC IS NOT NULL
AND PROBLEM_CODE IS NOT NULL
AND PROBLEM_CODE_DESC IS NOT NULL
AND CAUSE_CODE IS NOT NULL
AND CAUSE_CODE_DESC IS NOT NULL
AND ACTION_CODE IS NOT NULL
AND ACTION_CODE_DESC IS NOT NULL
) OS
LEFT JOIN JDPS_DBA.JDPS_HEADER JH
ON OS.DPS_NBR=JH.DPS_NBR
GROUP BY
OS.DPS_NBR,
OS.ARRIVE_TIMESTAMP,
OS.COMPL_TIMESTAMP,
OS.STATUS_CODE,
OS.STATUS_CODE_DESC,
OS.PROBLEM_CODE,
OS.PROBLEM_CODE_DESC,
OS.CAUSE_CODE,
OS.CAUSE_CODE_DESC,
OS.ACTION_CODE,
OS.ACTION_CODE_DESC,
JH.DPS_NBR,
JH.DPS_TYPE,
JH.TPM_CODE
) X
LEFT JOIN GS_CALL_LOG_HEADER CLH
ON X.DPS_NBR=CLH.DPS_NBR;
V_TMP_ONSITE C_TMP_ONSITE%ROWTYPE;
V_TMP_STATUS_FILE C_TMP_STATUS_FILE%ROWTYPE;
V_TMP_CASE_AUDIT C_TMP_CASE_AUDIT%ROWTYPE;
V_MER_CASE_HISTORY C_MER_CASE_HISTORY%ROWTYPE;
V_SVC_STATUS_ID_A SVC_ACTIVITY.SVC_STATUS_ID%TYPE;
V_SVC_STATUS_ID_C SVC_ACTIVITY.SVC_STATUS_ID%TYPE;
BEGIN
SELECT SOURCE_SITE_ID INTO V_SOURCE_SITE_ID FROM SOURCE_SITE;
DELETE ERR_SVC_ACTIVITY WHERE TO_DATE(ERR_DATE)=TO_DATE(SYSDATE);
COMMIT;
IF BITAND(MSK,4)=4 THEN
UPDATE TABLE_STATUS SET STATUS='WRITING...',UPDATE_DATE=SYSDATE WHERE TABLE_NAME='GS_CASE_HEADER';
COMMIT;
V_CUSSOR := DBMS_SQL.OPEN_CURSOR;
DBMS_SQL.PARSE(V_CUSSOR, 'TRUNCATE TABLE GS_CASE_HEADER', DBMS_SQL.V7);
V_PROCESSED := DBMS_SQL.EXECUTE(V_CUSSOR);
DBMS_SQL.CLOSE_CURSOR(V_CUSSOR);
INSERT INTO GS_CASE_HEADER NOLOGGING (
CASE_NUM,
SEVERITY_ID,
USER_ID
(SELECT
CH.CASE_NUM,
CH.SEVERITY_ID,
CH.USER_ID
FROM JDPS_DBA.CASE_HEADER CH
GROUP BY
CH.CASE_NUM,
CH.SEVERITY_ID,
CH.USER_ID
COMMIT;
UPDATE TABLE_STATUS SET STATUS='COMPLETED',UPDATE_DATE=SYSDATE WHERE TABLE_NAME='GS_CASE_HEADER';
COMMIT;
END IF;
-- Gather Data. "SVC_ACTIVITY" 1/4
-- TEMP_ONSITE ---> SVC_ACTIVITY
IF BITAND(MSK,1)=1 THEN
UPDATE TABLE_STATUS SET STATUS='WRITING...',UPDATE_DATE=SYSDATE WHERE TABLE_NAME='SVC_ACTIVITY02';
COMMIT;
V_CUSSOR := DBMS_SQL.OPEN_CURSOR;
DBMS_SQL.PARSE(V_CUSSOR, 'TRUNCATE TABLE SVC_ACTIVITY02', DBMS_SQL.V7);
V_PROCESSED := DBMS_SQL.EXECUTE(V_CUSSOR);
DBMS_SQL.CLOSE_CURSOR(V_CUSSOR);
SELECT STATUS_ID INTO V_SVC_STATUS_ID_A FROM M_STATUS WHERE STATUS_TYPE_ID_DESC='ONSITE' AND STATUS_CODE='ARRIV';
SELECT STATUS_ID INTO V_SVC_STATUS_ID_C FROM M_STATUS WHERE STATUS_TYPE_ID_DESC='ONSITE' AND STATUS_CODE='COMPL';
OPEN C_TMP_ONSITE;
LOOP
FETCH C_TMP_ONSITE INTO V_TMP_ONSITE;
EXIT WHEN C_TMP_ONSITE%NOTFOUND;
SELECT COUNT(*) INTO V_COUNT FROM MT_ONSITE WHERE DPS_NBR=V_TMP_ONSITE.DPS_NBR AND STATUS_DESC='ARRIV' AND TIME_STAMP=V_TMP_ONSITE.ARRIVE_TIMESTAMP;
IF V_COUNT=0 THEN
INSERT INTO ERR_SVC_ACTIVITY E (
E.ACTIVITY_ID,
E.ACTIVITY_DESC,
E.ACTIVITY_EFF_DATE,
E.ACTIVITY_EFF_DTS,
E.ACTIVITY_END_DATE,
E.ACTIVITY_END_DTS,
E.ACTIVITY_REASON_ID,
E.ACTIVITY_START_DATE,
E.ACTIVITY_START_DTS,
E.CASE_ID,
E.CAUSE_ID,
E.DELL_PROD_SVC_DESC_ID,
E.INTERACTION_ID,
E.SVC_ACTIVITY_SRC_ID,
E.SVC_EVENT_TYPE_ID,
E.SVC_INTERACTION_ID,
E.SVC_PROVIDER_ID,
E.SVC_RESULT_ID,
E.SVC_STATUS_ID,
E.EXTRACT_DATE,
E.EXTRACT_DTS,
E.SOURCE_SITE_ID,
E.LOAD_SEQ_NUM,
E.ERR_DESC,
E.ERR_DATE
VALUES (
NULL,
'ARRIV',
V_TMP_ONSITE.ARRIVE_TIMESTAMP,
TO_TIMESTAMP(TO_CHAR(V_TMP_ONSITE.ARRIVE_TIMESTAMP,'yyyy-mm-dd hh24:mi:ss')),
V_TMP_ONSITE.COMPL_TIMESTAMP,
TO_TIMESTAMP(TO_CHAR(V_TMP_ONSITE.COMPL_TIMESTAMP,'yyyy-mm-dd hh24:mi:ss')),
NULL,
V_TMP_ONSITE.ARRIVE_TIMESTAMP,
TO_TIMESTAMP(TO_CHAR(V_TMP_ONSITE.ARRIVE_TIMESTAMP,'yyyy-mm-dd hh24:mi:ss')),
NULL,
NULL,
NULL,
NULL,
V_TMP_ONSITE.SVC_ACTIVITY_SRC_ID,
NULL,
NULL,
NULL,
NULL,
     NULL,
SYSDATE,
SYSTIMESTAMP,
V_SOURCE_SITE_ID,
NULL,
'The MT_ONSITE master doesn''t have the dps number and ARRIV and arrive timestamp.(' || V_TMP_ONSITE.DPS_NBR || ',ARRIV,' || V_TMP_ONSITE.ARRIVE_TIMESTAMP || ')',
SYSDATE
UPDATE TABLE_STATUS SET STATUS='UPDATED!!',UPDATE_DATE=SYSDATE WHERE TABLE_NAME='ERR_SVC_ACTIVITY';
COMMIT;
ELSE
INSERT INTO SVC_ACTIVITY02 A (
A.ACTIVITY_ID,
A.ACTIVITY_DESC,
A.ACTIVITY_EFF_DATE,
A.ACTIVITY_EFF_DTS,
A.ACTIVITY_END_DATE,
A.ACTIVITY_END_DTS,
A.ACTIVITY_REASON_ID,
A.ACTIVITY_START_DATE,
A.ACTIVITY_START_DTS,
A.CASE_ID,
A.CAUSE_ID,
A.DELL_PROD_SVC_DESC_ID,
A.INTERACTION_ID,
A.SVC_ACTIVITY_SRC_ID,
A.SVC_EVENT_TYPE_ID,
A.SVC_INTERACTION_ID,
A.SVC_PROVIDER_ID,
A.SVC_RESULT_ID,
A.SVC_STATUS_ID,
A.EXTRACT_DATE,
A.EXTRACT_DTS,
A.SOURCE_SITE_ID,
A.LOAD_SEQ_NUM
VALUES (
TO_NUMBER(V_SOURCE_SITE_ID_N || (SELECT /*+ INDEX(MT_ONSITE IX_MT_ONSITE) */ NUMERIC_KEY FROM MT_ONSITE WHERE DPS_NBR=V_TMP_ONSITE.DPS_NBR AND STATUS_DESC='ARRIV' AND TIME_STAMP=V_TMP_ONSITE.ARRIVE_TIMESTAMP)),
'ARRIV',
V_TMP_ONSITE.ARRIVE_TIMESTAMP,
TO_TIMESTAMP(TO_CHAR(V_TMP_ONSITE.ARRIVE_TIMESTAMP,'yyyy-mm-dd hh24:mi:ss')),
V_TMP_ONSITE.COMPL_TIMESTAMP,
TO_TIMESTAMP(TO_CHAR(V_TMP_ONSITE.COMPL_TIMESTAMP,'yyyy-mm-dd hh24:mi:ss')),
TO_NUMBER(V_SOURCE_SITE_ID_N || (SELECT /*+ INDEX(MT_ONSITE_PROBLEM IX_MT_ONSITE_PROBLEM) */ NUMERIC_KEY FROM MT_ONSITE_PROBLEM WHERE PROBLEM_CODE=V_TMP_ONSITE.PROBLEM_CODE)),
V_TMP_ONSITE.ARRIVE_TIMESTAMP,
TO_TIMESTAMP(TO_CHAR(V_TMP_ONSITE.ARRIVE_TIMESTAMP,'yyyy-mm-dd hh24:mi:ss')),
TO_NUMBER(V_SOURCE_SITE_ID_N || (SELECT /*+ INDEX(MT_CASE_HEADER IX_MT_CASE_HEADER) */ NUMERIC_KEY FROM MT_CASE_HEADER WHERE CASE_NUM=V_TMP_ONSITE.CLH_CASE_NUM)),
TO_NUMBER(V_SOURCE_SITE_ID_N || (SELECT /*+ INDEX(MT_ONSITE_CAUSE IX_MT_ONSITE_CAUSE) */ NUMERIC_KEY FROM MT_ONSITE_CAUSE WHERE CAUSE_CODE=V_TMP_ONSITE.CAUSE_CODE)),
TO_NUMBER(V_SOURCE_SITE_ID_N || (SELECT DELL_PROC_SVC_DESC_ID FROM M_PROD_SVC_TYPE WHERE SRC_DESC_DESC_CODE=V_TMP_ONSITE.JH_DPS_TYPE)),
TO_NUMBER(V_SOURCE_SITE_ID_N || (SELECT /*+ INDEX(MT_CALL_LOG_HEADER IX_MT_CALL_LOG_HEADER) */ NUMERIC_KEY FROM MT_CALL_LOG_HEADER WHERE DATE_CODE=V_TMP_ONSITE.CLH_DATE_CODE AND CASE_NUM=V_TMP_ONSITE.CLH_CASE_NUM AND FLG_DELLSRV=V_TMP_ONSITE.CLH_FLG_DELLSRV)),
TO_NUMBER(V_SOURCE_SITE_ID_N || V_TMP_ONSITE.SVC_ACTIVITY_SRC_ID),
TO_NUMBER(V_SOURCE_SITE_ID_N || (SELECT /*+ INDEX(MT_ONSITE_ACTION IX_MT_ONSITE_ACTION) */ NUMERIC_KEY FROM MT_ONSITE_ACTION WHERE ACTION_CODE=V_TMP_ONSITE.ACTION_CODE)),
TO_NUMBER(V_SOURCE_SITE_ID_N || (SELECT /*+ INDDEX(MT_JDPS_HEADER IX_JDPS_HEADER) */ NUMERIC_KEY FROM MT_JDPS_HEADER WHERE DPS_NBR=V_TMP_ONSITE.DPS_NBR)),
TO_NUMBER(V_SOURCE_SITE_ID_N || (SELECT /*+ INDEX(MT_TPM_CODE IX_MT_TPM_CODE) */ NUMERIC_KEY FROM MT_TPM_CODE WHERE TPM_CODE=V_TMP_ONSITE.JH_TPM_CODE)),
TO_NUMBER(V_SOURCE_SITE_ID_N || (SELECT /*+ INDEX(MT_ONSITE_STATUS IX_MT_ONSITE_STATUS) */ NUMERIC_KEY FROM MT_ONSITE_STATUS WHERE STATUS_CODE=V_TMP_ONSITE.STATUS_CODE)),
V_SVC_STATUS_ID_A,
SYSDATE,
SYSTIMESTAMP,
V_SOURCE_SITE_ID,
NULL
END IF;
SELECT COUNT(*) INTO V_COUNT FROM MT_ONSITE WHERE DPS_NBR=V_TMP_ONSITE.DPS_NBR AND STATUS_DESC='COMPL' AND TIME_STAMP=V_TMP_ONSITE.COMPL_TIMESTAMP;
IF V_COUNT=0 THEN
INSERT INTO ERR_SVC_ACTIVITY E (
E.ACTIVITY_ID,
-- E.SOURCE_SYS_CREATE_DTS,
E.ACTIVITY_DESC,
-- E.ACTIVITY_DURACTION,
E.ACTIVITY_EFF_DATE,
E.ACTIVITY_EFF_DTS,
E.ACTIVITY_END_DATE,
E.ACTIVITY_END_DTS,
-- E.ACTIVITY_NOTIFICATION_DATE,
-- E.ACTIVITY_NOTIFICATION_DTS,
E.ACTIVITY_REASON_ID,
E.ACTIVITY_START_DATE,
E.ACTIVITY_START_DTS,
-- E.ALT_CONTACT_PHONE,
E.CASE_ID,
E.CAUSE_ID,
-- E.CUSTOMER_GMT_OFFSET,
E.DELL_PROD_SVC_DESC_ID,
E.INTERACTION_ID,
-- E.SECONDARY_CONTACT_NAME,
-- E.SECONDARY_CONTACT_PHONE,
-- E.SRC_ACTIVITY_CODE,
E.SVC_ACTIVITY_SRC_ID,
E.SVC_EVENT_TYPE_ID,
E.SVC_INTERACTION_ID,
-- E.SVC_ORG_GROUP_ID,
E.SVC_PROVIDER_ID,
-- E.SVC_QUEUE_ID,
E.SVC_RESULT_ID,
-- E.SVC_SEVERITY_ID,
E.SVC_STATUS_ID,
-- E.SVC_URGENCY_ID,
E.EXTRACT_DATE,
E.EXTRACT_DTS,
E.SOURCE_SITE_ID,
-- E.SOURCE_SYS_CREATE_BY,
-- E.SOURCE_SYS_CREATE_DATE,
-- E.SOURCE_SYS_UPDATE_BY,
-- E.SOURCE_SYS_UPDATE_DATE,
-- E.SOURCE_SYS_UPDATE_DTS,
E.LOAD_SEQ_NUM,
E.ERR_DESC,
E.ERR_DATE
VALUES (
NULL, --V_TMP_ONSITE.DPS_NBR || 'COMPL' || V_TMP_ONSITE.COMPL_TIMESTAMP,
'COMPL',
V_TMP_ONSITE.COMPL_TIMESTAMP,
TO_TIMESTAMP(TO_CHAR(V_TMP_ONSITE.COMPL_TIMESTAMP,'yyyy-mm-dd hh24:mi:ss')),
V_TMP_ONSITE.COMPL_TIMESTAMP,
TO_TIMESTAMP(TO_CHAR(V_TMP_ONSITE.COMPL_TIMESTAMP,'yyyy-mm-dd hh24:mi:ss')),
NULL, --V_TMP_ONSITE.PROBLEM_CODE,
V_TMP_ONSITE.ARRIVE_TIMESTAMP,
TO_TIMESTAMP(TO_CHAR(V_TMP_ONSITE.ARRIVE_TIMESTAMP,'yyyy-mm-dd hh24:mi:ss')),
NULL, --V_TMP_ONSITE.CLH_CASE_NUM,
NULL, --V_TMP_ONSITE.CAUSE_CODE,
NULL, --V_TMP_ONSITE.JH_DPS_TYPE,
NULL, --V_TMP_ONSITE.CLH_DATE_CODE || V_TMP_ONSITE.CLH_CASE_NUM || V_TMP_ONSITE.CLH_FLG_DELLSRV,
V_TMP_ONSITE.SVC_ACTIVITY_SRC_ID,
NULL, --V_TMP_ONSITE.ACTION_CODE,
NULL, --V_TMP_ONSITE.DPS_NBR,
NULL, --V_TMP_ONSITE.JH_TPM_CODE,
NULL, --V_TMP_ONSITE.STATUS_CODE,
NULL, --V_SVC_STATUS_ID_C,
SYSDATE,
SYSTIMESTAMP,
V_SOURCE_SITE_ID,
NULL,
'The MT_ONSITE master doesn''t have the dps number and COMPL and compl timestamp.(' || V_TMP_ONSITE.DPS_NBR || ',COMPL,' || V_TMP_ONSITE.COMPL_TIMESTAMP || ')',
SYSDATE
UPDATE TABLE_STATUS SET STATUS='UPDATED!!',UPDATE_DATE=SYSDATE WHERE TABLE_NAME='ERR_SVC_ACTIVITY';
COMMIT;
ELSE
INSERT INTO SVC_ACTIVITY02 A (
A.ACTIVITY_ID,
-- A.SOURCE_SYS_CREATE_DTS,
A.ACTIVITY_DESC,
-- A.ACTIVITY_DURACTION,
A.ACTIVITY_EFF_DATE,
A.ACTIVITY_EFF_DTS,
A.ACTIVITY_END_DATE,
A.ACTIVITY_END_DTS,
-- A.ACTIVITY_NOTIFICATION_DATE,
-- A.ACTIVITY_NOTIFICATION_DTS,
A.ACTIVITY_REASON_ID,
A.ACTIVITY_START_DATE,
A.ACTIVITY_START_DTS,
-- A.ALT_CONTACT_PHONE,
A.CASE_ID,
A.CAUSE_ID,
-- A.CUSTOMER_GMT_OFFSET,
A.DELL_PROD_SVC_DESC_ID,
A.INTERACTION_ID,
-- A.SECONDARY_CONTACT_NAME,
-- A.SECONDARY_CONTACT_PHONE,
-- A.SRC_ACTIVITY_CODE,
A.SVC_ACTIVITY_SRC_ID,
A.SVC_EVENT_TYPE_ID,
A.SVC_INTERACTION_ID,
-- A.SVC_ORG_GROUP_ID,
A.SVC_PROVIDER_ID,
-- A.SVC_QUEUE_ID,
A.SVC_RESULT_ID,
-- A.SVC_SEVERITY_ID,
A.SVC_STATUS_ID,
-- A.SVC_URGENCY_ID,
A.EXTRACT_DATE,
A.EXTRACT_DTS,
A.SOURCE_SITE_ID,
-- A.SOURCE_SYS_CREATE_BY,
-- A.SOURCE_SYS_CREATE_DATE,
-- A.SOURCE_SYS_UPDATE_BY,
-- A.SOURCE_SYS_UPDATE_DATE,
-- A.SOURCE_SYS_UPDATE_DTS,
A.LOAD_SEQ_NUM
VALUES (
TO_NUMBER(V_SOURCE_SITE_ID_N || (SELECT /*+ INDEX(MT_ONSITE IX_MT_ONSITE) */ NUMERIC_KEY FROM MT_ONSITE WHERE DPS_NBR=V_TMP_ONSITE.DPS_NBR AND STATUS_DESC='COMPL' AND TIME_STAMP=V_TMP_ONSITE.COMPL_TIMESTAMP)),
'COMPL',
V_TMP_ONSITE.COMPL_TIMESTAMP,
TO_TIMESTAMP(TO_CHAR(V_TMP_ONSITE.COMPL_TIMESTAMP,'yyyy-mm-dd hh24:mi:ss')),
V_TMP_ONSITE.COMPL_TIMESTAMP,
TO_TIMESTAMP(TO_CHAR(V_TMP_ONSITE.COMPL_TIMESTAMP,'yyyy-mm-dd hh24:mi:ss')),
TO_NUMBER(V_SOURCE_SITE_ID_N || (SELECT /*+ INDEX(MT_ONSITE_PROBLEM IX_MT_ONSITE_PROBLEM) */ NUMERIC_KEY FROM MT_ONSITE_PROBLEM WHERE PROBLEM_CODE=V_TMP_ONSITE.PROBLEM_CODE)),
V_TMP_ONSITE.ARRIVE_TIMESTAMP,
TO_TIMESTAMP(TO_CHAR(V_TMP_ONSITE.ARRIVE_TIMESTAMP,'yyyy-mm-dd hh24:mi:ss')),
TO_NUMBER(V_SOURCE_SITE_ID_N || (SELECT /*+ INDEX(MT_CASE_HEADER IX_MT_CASE_HEADER) */ NUMERIC_KEY FROM MT_CASE_HEADER WHERE CASE_NUM=V_TMP_ONSITE.CLH_CASE_NUM)),
TO_NUMBER(V_SOURCE_SITE_ID_N || (SELECT /*+ INDEX(MT_ONSITE_CAUSE IX_MT_ONSITE_CAUSE) */ NUMERIC_KEY FROM MT_ONSITE_CAUSE WHERE CAUSE_CODE=V_TMP_ONSITE.CAUSE_CODE)),
TO_NUMBER(V_SOURCE_SITE_ID_N || (SELECT DELL_PROC_SVC_DESC_ID FROM M_PROD_SVC_TYPE WHERE SRC_DESC_DESC_CODE=V_TMP_ONSITE.JH_DPS_TYPE)),
TO_NUMBER(V_SOURCE_SITE_ID_N || (SELECT /*+ INDEX(MT_CALL_LOG_HEADER IX_MT_CALL_LOG_HEADER) */ NUMERIC_KEY FROM MT_CALL_LOG_HEADER WHERE DATE_CODE=V_TMP_ONSITE.CLH_DATE_CODE AND CASE_NUM=V_TMP_ONSITE.CLH_CASE_NUM AND FLG_DELLSRV=V_TMP_ONSITE.CLH_FLG_DELLSRV)),
TO_NUMBER(V_SOURCE_SITE_ID_N || V_TMP_ONSITE.SVC_ACTIVITY_SRC_ID),
TO_NUMBER(V_SOURCE_SITE_ID_N || (SELECT /*+ INDEX(MT_ONSITE_ACTION IX_MT_ONSITE_ACTION) */ NUMERIC_KEY FROM MT_ONSITE_ACTION WHERE ACTION_CODE=V_TMP_ONSITE.ACTION_CODE)),
TO_NUMBER(V_SOURCE_SITE_ID_N || (SELECT /*+ INDDEX(MT_JDPS_HEADER IX_JDPS_HEADER) */ NUMERIC_KEY FROM MT_JDPS_HEADER WHERE DPS_NBR=V_TMP_ONSITE.DPS_NBR)),
TO_NUMBER(V_SOURCE_SITE_ID_N || (SELECT /*+ INDEX(MT_TPM_CODE IX_MT_TPM_CODE) */ NUMERIC_KEY FROM MT_TPM_CODE WHERE TPM_CODE=V_TMP_ONSITE.JH_TPM_CODE)),
TO_NUMBER(V_SOURCE_SITE_ID_N || (SELECT /*+ INDEX(MT_ONSITE_STATUS IX_MT_ONSITE_STATUS) */ NUMERIC_KEY FROM MT_ONSITE_STATUS WHERE STATUS_CODE=V_TMP_ONSITE.STATUS_CODE)),
V_SVC_STATUS_ID_C,
SYSDATE,
SYSTIMESTAMP,
V_SOURCE_SITE_ID,
NULL
END IF;
V_LIMIT := V_LIMIT + 1;
IF V_LIMIT > 10000 THEN
COMMIT;
V_LIMIT :=0;
END IF;
END LOOP;
-- カーソルのクローズ
CLOSE C_TMP_ONSITE;
COMMIT;
V_LIMIT :=0;
UPDATE TABLE_STATUS SET STATUS='COMPLETED',UPDATE_DATE=SYSDATE WHERE TABLE_NAME='SVC_ACTIVITY02';
COMMIT;
END IF;

The procedure takes two optional parameters, a date, which defaults to sysdate if not passed, and an integer which defaults to 31 if not passed.
The BITAND function does a bitwise and on msk and the constants. A bitwise and works like this. It takes the binary representation of the two numbers and compares each bit. If both are the same, then it sets the corresponding bit in the output to 1, if they are different, then the corresponding bit is 0. So
31 binary is: 11111
2 binary is 10
So to do a bitand, you pad the shorter number on the left with zeroes and compare each bit so:
11111
00010
00010so BITAND(31, 2) = 2
I'm not really sure how your application is determining the value for msk to pass to the procedure, and don't have the time to decipher the posted code to see how it is really using it, but one common use for bit masks is to store several yes/no or on/off flags in a very compact form.
For example, one application I worked with several years ago had a security model that determined for each user for each screen what they could do with that screen. The permissions were stored in a single number similar to the file permissions in UNIX. So, reading from the right:
Bit 1 Set = Read permission
Bit 2 Set = Insert permission
Bit 3 set = Update Permission
Bit 4 set = Delete permissionSo, a user who could read and update but not insert or delete would have bits set as 0101 or 5. To determine if the user could insert a record, the application would do something like:
IF BITAND(permission_no, 2) = 1 THEN
   allow update
ELSE
   deny update
END IF;HTH
John

Similar Messages

Maybe you are looking for

  • BPM messages stuck In Process - never get sent

    Hi all, We have had a number of BPM processes running successfully in our XI 3.0 DEV SP17 system for weeks now but suddenly, none are now working. Our BPMs wait a specified amount of time before creating a bundled outbound message. In SXMB_MONI, the

  • Anyone got ACS SE 4.2.1 authenticating against server 2008 R2 via LDAP?

    Hi, I'm working on a new network implementation where the customer has ACS SE and wants to use AD for machine based authentication of wired 802.1x clients. As the support for 2008 R2 server (64-bit OS used here) using remote agent is not yet released

  • How can i print the form

    hi im trying to print one form i mean the from with its items how i can make button when i press the form will print plz help

  • Traveling across time zones and calendar events

    I am going to Europe and want to know if I put my flights into my iOS calendar now using European local flight time will my calendar adjust for the time zone when I am there? I live in MST. In other words if I enter a 4:00PM FLIGHT now in MST, when I

  • After Upgrade to PI7.1 getting Simple transformation error

    HI Experts, I have an Issue, the scenario which i', working its working properly in DEV, QA, PROD in PI 7.0, We upgraded the system to PI7.1 Unknown Simple transformation error in converting XML to internal table Application error in mapping program