If I have a PL SQL procedure like this:
Create Or Replace Procedure get_age (first_name varchar(40), last_name varchar(50))
Where first = first_name AND last = last_name;
Your query is good as it is now, you can accept null values in your
Where (first = first_name OR first_name is NULL) AND (last = last_name OR last_name in NULL);
This way the user can enter first and last names, first or last names only or neither and results will be selected as expected.