Se a única coisa que você não sabe fazer aqui é usar um nome de tabela dinamicamente, então é assim que você pode fazer isso
1 declare
2 n number;
3 table_name varchar2(30) := 'dual';
4 begin
5 execute immediate 'select count(*) from ' || table_name into n;
6 dbms_output.put_line(n);
7* end;
SQL> /
1