Si la seule chose que vous ne savez pas faire ici est d'utiliser un nom de table de manière dynamique, voici comment vous pouvez y parvenir
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