You can achieve this with EXECUTE IMMEDIATE ... RETURNING INTO:
function count_rows(p_table_name varchar2) return number is l_count number; begin execute immediate 'select count(*) from ' || p_table_name returning into l_count; return l_count; end count_rows;
source share