|
Tips en Trucs
Gebruik
een parameter om te verwijzen naar variabelen die buiten
de cursor zijn gedeclareerd.
Compliments of Steven
Feuerstein, Pipeline SYSOP
Als
je Cursor verwijst naar data binnen je programma (een
locale variabele, een parameter, een global variabele
e.d.), dan is het netter om die waarde als parameter
door te geven aan de cursor, in plaats van er rechtstreeks
naar verwijzen.
Door deze werkwijze te hanteren, worden je cursoren
eenvoudiger te onderhouden en te debuggen. Je kan ook
eenvoudiger dezelfde cursor gebruiken voor andere situaties.
In het volgende voorbeeld worden 2 cursoren gedefinieerd.
Cursor C2 wordt aangeroepen met een parameter, in plaats
van een directe verwijzing.
Deze is daardoor leesbaarder en eenvoudiger te onderhouden.
(Bijvoorbeeld het wijzigen van v_name naar v_input_name
vergt enkel aanpassingen in de declaratie en de aanroep
van de cursor, niet in de SQL zelf).
C2 is ook eenvoudiger te hergebruiken (met cut-and-past
minder kans op fouten).
CREATE
PROCEDURE parameterized_cursor
(v_name IN VARCHAR, v_count OUT INTEGER)
AS
CURSOR c1
IS
SELECT COUNT (*)
FROM all_objects
WHERE object_name = v_name
OR owner = v_name;
CURSOR c2 (name_in IN VARCHAR2)
IS
SELECT COUNT (*)
FROM all_objects
WHERE object_name = name_in
OR owner = name_in;
BEGIN
OPEN c1;
FETCH c1
INTO v_count;
CLOSE c1;
OPEN c2 (v_name);
FETCH c2
INTO v_count;
CLOSE c2;
END;
|