|
Without defining a cursor explicitly we can simply substitute the subquery inside a FOR statement.
e.g.
SET SERVEROUTPUT ON
BEGIN
FOR trip_record IN (SELECT bt_id_pk, bt_duration
FROM business_trips) LOOP
-- implicit open/fetch occurs
IF trip_record.bt_duration = 1 THEN
DBMS_OUTPUT_LINE ('trip Number ' || trip_record.bt_id_pk
|| ' is a one day trip');
END IF;
END LOOP; -- implicit CLOSE occurs
END;
/
Cursor with Parameters
DECLARE
v_hotel business_trips.bt_hotel_id%TYPE := 12;
v_duration business_trips.bt_duration.%TYPE := 3;
CURSOR trip_cursor(p_hotel NUMBER, p_duration VARCHAR2) IS
SELECT ...
--Then to open the cursor either
OPEN trip_cursor (12, 3);
--or using the variables:
OPEN trip_cursor (v_hotel, v_duration);
--Alternatively open the cursor implicitly as part of
a Cursor FOR loop
pass the parameters like this...
BEGIN
FOR trip_record IN trip_cursor(12, 3) LOOP ...
Related Commands:
PL/SQL looping commands
EXIT -
GOTO -
Related Views: