FETCH
statement must provide variables for each component of the tuple retrieved.
%NOTFOUND
after the name of a cursor is true exactly when a fetch through that cursor has failed to find any more tuples.
CURRENT OF T1Cursor
.
DECLARE /* Output variables to hold the result of the query: */ a T1.e%type; b T1.f%type; /* Cursor declaration: */ CURSOR T1Cursor IS SELECT e, f FROM T1 WHERE e < f FOR UPDATE; BEGIN OPEN T1Cursor; LOOP /* Retrieve each row of the result of the above query into PL/SQL variables: */ FETCH T1Cursor INTO a, b; /* If there are no more rows to fetch, exit the loop: */ EXIT WHEN T1Cursor%NOTFOUND; /* Delete the current tuple: */ DELETE FROM T1 WHERE CURRENT OF T1Cursor; /* Insert the reverse tuple: */ INSERT INTO T1 VALUES( b, a ); END LOOP; /* Free cursor used by the query. */ CLOSE T1Cursor; END; |
“The only way to get through life is to laugh your way through it. You either have to laugh or cry. I prefer to laugh. Crying gives me a headache.” ― Marjorie Pay Hinckley |