how can I turn this proc into a implicit cursor
From: lou_nyc <lnlx_at_aol.com>
Date: 16 May 2006 07:01:59 -0700
Message-ID: <1147788119.440698.292460_at_j33g2000cwa.googlegroups.com>
Folks,
IS
SELECT gc.action, gv.coop_in_date
IS
SELECT gc.action, gv.coop_in_date
END IF;
EXCEPTION
WHEN EXIT_EXCEPTION THEN
NULL;
WHEN OTHERS THEN
END; Received on Tue May 16 2006 - 16:01:59 CEST
Date: 16 May 2006 07:01:59 -0700
Message-ID: <1147788119.440698.292460_at_j33g2000cwa.googlegroups.com>
Folks,
PROCEDURE out4hours_PROC(his_rec_1 IN chas_his_rec_TYPE
,his_rec_2 IN chas_his_rec_TYPE)
IS
v_booking gate_containers.booking%TYPE := NULL; v_action gate_containers.action%TYPE := NULL; v_coop_date DATE := NULL; v_user ssl.code%TYPE := NULL; v_user_desc ssl.long_description%TYPE := NULL; CURSOR fg_cur(pvisit gate_visit.visit%TYPE
,pref_id gate_containers.reference_id%TYPE
) IS SELECT gc.action, gc.booking, gv.coop_in_date, gc.ssl_user_code, s.long_description FROM gate_containers gc ,gate_visit gv ,ssl s WHERE gc.visit = pvisit AND gc.reference_id = pref_id AND gc.visit = gv.visit AND gc.ssl_user_code = s.code(+); CURSOR tg_cur(pvisit gate_visit.visit%TYPE
,pref_id gate_containers.reference_id%TYPE
) IS SELECT gc.action, gc.booking, gv.coop_in_date, gc.ssl_user_code, s.long_description FROM gate_containers_at_tripoli gc ,gate_visit_at_tripoli gv ,ssl_at_tripoli s WHERE gc.visit = pvisit AND gc.reference_id = pref_id AND gc.visit = gv.visit AND gc.ssl_user_code = s.code(+); CURSOR fa_cur(pvisit gate_visit.visit%TYPE ,pref_id gate_containers.reference_id%TYPE )
IS
SELECT gc.action, gv.coop_in_date
FROM gate_containers gc
,gate_visit gv
WHERE gc.visit = pvisit
AND gc.reference_id = pref_id
AND gc.visit = gv.visit;
CURSOR ta_cur(pvisit gate_visit.visit%TYPE
,pref_id gate_containers.reference_id%TYPE
)
IS
SELECT gc.action, gv.coop_in_date
FROM gate_containers_at_tripoli gc
,gate_visit_at_tripoli gv
WHERE gc.visit = pvisit
AND gc.reference_id = pref_id
AND gc.visit = gv.visit;
BEGIN
IF his_rec_1.chassis = his_rec_2.chassis THEN
IF his_rec_1.out_date IS NULL OR his_rec_1.out_visit IS NULL OR his_rec_1.out_reference_id IS NULL THEN
RAISE EXIT_EXCEPTION;
END IF;
IF his_rec_2.in_visit IS NULL OR his_rec_2.in_reference_id IS
NULL THEN
RAISE EXIT_EXCEPTION;
END IF;
-- Chassis has to have left thru Coop Depot NAKED
IF his_rec_1.area = 'F' THEN
OPEN fg_cur(his_rec_1.out_visit,his_rec_1.out_reference_id);
FETCH fg_cur INTO v_action, v_booking, v_coop_date, v_user,
v_user_desc;
CLOSE fg_cur;
IF v_action IS NULL
THEN
OPEN tg_cur(his_rec_1.out_visit,
his_rec_1.out_reference_id);
FETCH tg_cur INTO v_action, v_booking, v_coop_date,
v_user, v_user_desc;
CLOSE tg_cur;
IF v_action IS NULL
THEN
RAISE EXIT_EXCEPTION;
END IF;
END IF;
ELSE
OPEN tg_cur(his_rec_1.out_visit,his_rec_1.out_reference_id);
FETCH tg_cur INTO v_action, v_booking, v_coop_date, v_user,
v_user_desc;
CLOSE tg_cur;
IF v_action IS NULL
THEN
RAISE EXIT_EXCEPTION;
END IF;
END IF;
IF v_coop_date IS NULL OR v_action <>
global_PKG.DELIVERED_NAKED_CHASSIS THEN
RAISE EXIT_EXCEPTION;
END IF;
-- Chassis has to have returned thru Coop Depot NAKED
OPEN fa_cur(his_rec_2.in_visit,his_rec_2.in_reference_id);
FETCH fa_cur INTO v_action, v_coop_date;
CLOSE fa_cur;
IF v_action IS NULL
THEN
OPEN ta_cur(his_rec_2.in_visit,his_rec_2.in_reference_id);
FETCH ta_cur INTO v_action, v_coop_date;
CLOSE ta_cur;
IF v_action IS NULL
THEN
RAISE EXIT_EXCEPTION;
END IF;
END IF;
IF v_coop_date IS NULL OR v_action <>
global_PKG.RECEIVED_NAKED_CHASSIS THEN
RAISE EXIT_EXCEPTION;
END IF;
-- and, Chassis has to have out for more than 4 hours...
IF his_rec_2.in_date - his_rec_1.out_date > 1/6 THEN
write_to_chas_temp_PROC(his_rec_1
,his_rec_2.in_date
,his_rec_2.in_visit
,v_booking
,v_user
,v_user_desc);
END IF;
END IF;
EXCEPTION
WHEN EXIT_EXCEPTION THEN
NULL;
WHEN OTHERS THEN
ROLLBACK;
RAISE_APPLICATION_ERROR(-20006,'Error in nvrm_PKG.out4hours_PROC
- '||SQLERRM);
END; Received on Tue May 16 2006 - 16:01:59 CEST
