It's nice to see your pl/sql code but you have not posted the output of the pl/sql block.

Anyways, coming back to your question how do you expect the output if you have more than two group of dates. Do you want the dob to appear as a column value or appear as the column heading. Either way it looks to me the most infamous question pivot. Search in this forum, asktom.oracle.com, any other oracle forums for the keywords pivot, rows to columns, stragg you will be bombarded with answers.

When responding to questions, if it is obviously a student with a homework assignment or someone else just learning, especially in the homework and newbies forums, it is usual to provide hints or clues, perhaps links to relevant portions of the documentation, or a similar example, to point them in the right direction so that they will research and experiment on their own and learn, and not provide complete solutions to problems. In cases where someone has a real-life complex work problem, or at least it may seem complex to them, it may be best to provide a complete demo and explanation.