Replace characters with accent with their base letter in Oracle PL/SQL

For a project we needed to match data from a persons table with data from a relations table on the basis of their first name and surname. In one table characters with accents where used, like á, é, ç. In the other table no accents where used. We needed to make sure that José Mañçureck and Jose Mancureck was a match. So we needed to replace the characters with accent with their base letters, e.g.:
é => e
ñ => n
ç => c

The SQL statement below shows how this is done:

Beware that also the uppercase characters are converted to lower case. So you will probably also need to make use of the INITCAP, UPPER or LOWER function:

So the SQL statement to match persons and relations on the basis of their names will look like this:

Thanks to André Goossens for this blog post.