In the online version (which also matches the quiz offered at PL/SQL Challenge, both a and b are correct.
Assuming that a unique index is defined on the employee_id column, this block will never raise the TOO_MANY_ROWS exception.
If the statement doesn’t identify any rows to be fetched, Oracle Database will raise the NO_DATA_FOUND exception.
Here are some examples of using SELECT-INTO: Get the last name for a specific employee ID (the primary key in the employees table): If there is a row in the employees table with ID 138, this block will display the last name of that employee.
Fetch an entire row from the employees table for a specific employee ID: Again, if an employee exists for that ID, the last name will be displayed.
In this case, I declare a record based on the employees table and fetch all columns (with a SELECT *) into that record for the specified row.