A cursor FOR loop is a loop that is associated with (and actually defined by) an explicit cursor or a SELECT statement incorporated directly within the loop boundary. Use the cursor FOR loop only if you need to fetch and process each and every record from a cursor, which is often the case with cursors.
The cursor FOR loop leverages the tight and effective integration of the
procedural constructs with the power of the SQL database language. It reduces the volume of code you need to write to fetch data from a cursor.
It decreases the chance of introducing loop errors in your programming and loops are one of the more error-prone parts of a program.
Here is the basic syntax of a cursor FOR loop:
FOR record IN { cursor_name | (explicit SELECT statement) }
LOOP
executable statement(s)
END LOOP;
where record is a record declared implicitly by PL/SQL with the %ROWTYPE attribute against the cursor specified by cursor_name.