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 |