Expand|Select|Wrap|Line Numbers
- CREATE OR REPLACE PROCEDURE CRIMES.E_PROC
- IS
- v_MOB_COUNTER NUMBER(10) :=0;
- v_imsi_counter NUMBER(16) :=0;
- v_imei_counter NUMBER(16) :=0;
- v_his_counter NUMBER(16) :=0;
- v_tower_counter NUMBER(16) :=0;
- v_exists NUMBER(16) :=0; /* should we check for duplicate record for each entry */
- -- v_cust_id NUMBER(10) :=0;
- v_CALLTIME date;
- -- v_CALTYPE VARCHAR2(4);
- v_CALLDT CRIMES.CALLS.call_date%TYPE;
- v_CALLTYPE VARCHAR2(4);
- v_CUST_COUNTER NUMBER(10) :=0;
- v_MYNUMBER CRIMES.CALLS.mobile_no%TYPE;
- v_HIS_NUMBER CRIMES.CALLS.HIS_NUMBER%TYPE;
- v_SIMID CRIMES.CALLS.IMSI_NO%TYPE;
- v_PHONEID CRIMES.CALLS.IMEI_NO%TYPE;
- v_TOWERID CRIMES.CALLS.START_TOWER_ID%TYPE;
- v_END_BTS_ID CRIMES.CALLS.END_TOWER_ID%TYPE;
- v_DURATION CRIMES.CALLS.DURATION%TYPE;
- v_HIS_IMEI CRIMES.CALLS.HIS_IMEI_NO%TYPE;
- v_HIS_IMSI CRIMES.CALLS.HIS_IMSI_NO%TYPE;
- v_HIS_START_BTS_ID CRIMES.CALLS.HIS_START_BTS_ID%TYPE;
- v_HIS_END_BTS_ID CRIMES.CALLS.HIS_END_BTS_ID%TYPE;
- v_ORIGINATING_NO CRIMES.CALLS_DUMMY.ORIGINATING_NO%TYPE;
- v_SMSC CRIMES.CALLS.SMSC%TYPE;
- v_Roam_Nw CRIMES.CALLS.Roam_Nw%TYPE;
- v_mis_match_format EXCEPTION;
- CURSOR c1 IS SELECT MOBILE_NO, HIS_NUMBER, IMSI_NO, IMEI_NO, CALL_DATE, CALL_TYPE,
- START_TOWER_ID, END_TOWER_ID, DURATION,
- HIS_IMEI_NO, HIS_IMSI_NO, HIS_START_BTS_ID, HIS_END_BTS_ID, ORIGINATING_NO,SMSC,Roam_Nw
- FROM CRIMES.calls_dummy;
- -- where rownum <= 10000 ;
- BEGIN
- -- Current Customer Id
- SELECT NVL(MAX(customer_id),0) INTO v_CUST_COUNTER FROM CRIMES.CUSTOMER ;
- IF v_CUST_COUNTER = 0 THEN
- v_CUST_COUNTER := 1;
- ELSE
- v_CUST_COUNTER := v_CUST_COUNTER + 1;
- END IF;
- OPEN c1;
- LOOP
- FETCH c1 INTO v_MYNUMBER, v_HIS_NUMBER, v_SIMID, v_PHONEID, v_CALLTIME,
- v_CALLTYPE, v_TOWERID, v_END_BTS_ID, v_DURATION, v_HIS_IMEI,
- v_HIS_IMSI, v_HIS_START_BTS_ID, v_HIS_END_BTS_ID, v_ORIGINATING_NO, v_SMSC, v_Roam_Nw;
- EXIT WHEN c1%NOTFOUND;
- IF( SUBSTR(v_MYNUMBER,1,2) ='91') THEN
- v_MYNUMBER := TO_NUMBER(TO_CHAR(SUBSTR(v_MYNUMBER,3)));
- END IF;
- IF( SUBSTR(v_HIS_NUMBER,1,2) ='91') THEN
- v_HIS_NUMBER := TO_NUMBER(TO_CHAR(SUBSTR(v_HIS_NUMBER,3)));
- END IF;
- -- for Mobile and Customer Tables
- SELECT COUNT(*) INTO v_MOB_COUNTER FROM CRIMES.MOBILE WHERE mobile_no = v_MYNUMBER;
- IF v_MOB_COUNTER = 0 THEN
- INSERT INTO CRIMES.CUSTOMER (customer_id) VALUES(v_CUST_COUNTER);
- INSERT INTO CRIMES.MOBILE
- VALUES(v_MYNUMBER, v_CUST_COUNTER,NULL,NULL);
- END IF;
- -- for IMSI and Mobile Table
- SELECT COUNT(*) INTO v_imsi_counter FROM CRIMES.IMSI WHERE imsi_no = v_SIMID;
- IF v_imsi_counter = 0 THEN
- INSERT INTO CRIMES.IMSI VALUES(v_MYNUMBER, v_SIMID, NULL);
- END IF;
- -- for IMEI and Mobile Table
- SELECT COUNT(*) INTO v_imei_counter FROM CRIMES.IMEI WHERE imei_no = v_PHONEID;
- IF v_imei_counter = 0 THEN
- INSERT INTO CRIMES.IMEI VALUES(v_MYNUMBER, v_PHONEID, NULL);
- END IF;
- -- for HIS Number and Mobile Table
- SELECT COUNT(*) INTO v_his_counter FROM CRIMES.HIS_NUMBER WHERE HIS_NUMBER = v_HIS_NUMBER;
- IF v_his_counter = 0 THEN
- INSERT INTO CRIMES.HIS_NUMBER VALUES(v_HIS_NUMBER, v_MYNUMBER);
- END IF;
- -- for Tower
- SELECT COUNT(*) INTO v_tower_counter FROM TOWER WHERE tower_id = v_TOWERID;
- IF v_tower_counter = 0 THEN
- INSERT INTO TOWER(tower_id) VALUES(v_TOWERID);
- END IF;
- SELECT COUNT(*) INTO v_tower_counter FROM TOWER WHERE tower_id = v_END_BTS_ID;
- IF v_tower_counter = 0 THEN
- INSERT INTO TOWER(tower_id) VALUES(v_END_BTS_ID);
- END IF;
- /*
- --IF ((v_v_CALLDT IS NULL) || (v_CALLDT = '00/00/00')) THEN
- IF ((v_CALLTIME IS NULL) OR (v_CALLTIME = '00/00/00')) THEN
- RAISE v_mis_match_format;
- END IF;
- v_CALLDT := TO_DATE(TO_CHAR(v_CALLTIME),'DD-MM-YY HH24:MI:SS');
- if v_CALLTYPE = '1' then
- v_CALLTYPE := 'MTC';
- end if;
- if v_CALLTYPE = '2' then
- v_CALLTYPE := 'MOC';
- end if;
- if v_CALLTYPE = '3' then
- v_CALLTYPE := 'FORW';
- end if;
- if v_CALLTYPE = '4' then
- v_CALLTYPE := 'ROAM';
- end if;
- if v_CALLTYPE = '8' then
- v_CALLTYPE := 'SMMO';
- end if;
- if v_CALLTYPE = '9' then
- v_CALLTYPE := 'SMMT';
- end if;
- */
- -- for Calls Table
- INSERT INTO CRIMES.abc
- VALUES(v_MYNUMBER, v_HIS_NUMBER, v_SIMID, v_PHONEID, v_CALLTIME,v_CALLTYPE,
- v_TOWERID,v_END_BTS_ID,v_DURATION,v_HIS_IMEI,v_HIS_IMSI,v_HIS_START_BTS_ID,v_HIS_END_BTS_ID,v_SMSC,v_Roam_Nw);
- IF v_CALLTYPE = 'FORW' THEN
- INSERT INTO crimes.ORIGINATE VALUES (v_CALLDT, v_MYNUMBER, v_ORIGINATING_NO);
- END IF;
- v_CUST_COUNTER := v_CUST_COUNTER + 1;
- END LOOP;
- COMMIT;
- -- delete from CRIMES.ABC where rownum <= 10000;
- CLOSE c1;
- EXCEPTION
- WHEN v_mis_match_format
- THEN Dbms_Output.PUT_LINE('Mis Match Format');
- END E_PROC;
- /