If a database stored procedure returns a result set, you must close the stored procedure when processing is complete. The procedure remains open until you close it, execute a COMMIT or ROLLBACK, or end the database connection.
Do you have to retrieve all the rows?
You do not have to retrieve all rows in a result set to close a request or procedure.
Example
Closing a procedure looks the same as closing a cursor:
CLOSE emp_proc;