Maybe, instead of guessing syntax of cursor for dynamic SQL, you should consult it in the documentation. Cursors (as part of PL/SQL language) are described in PL/SQL User's Guide and Reference book, which is available with other Oracle documentation books e.g. online on
http://tahiti.oracle.com/
For 11gR2, the relevant chapter is placed here:
http://docs.oracle.com/cd/E11882_01/...mic.htm#i13057
But, maybe a single dynamic (EXECUTE IMMEDIATE) INSERT SELECT statement may be better choice over this cursor approach.
Finally, just a note about WHEN OTHERS THEN NULL exception hiding section: it just states, that you do not bother whether the INSERT fails, its failure will be silently ignored. So, in my opinion, the whole procedure is just a waste of time, as inserting nothing is also correct (non-failing) behaviour. If you do not feel so, remove that whole EXCEPTION clause forever.