Efter min mening er en dynamisk PL/SQL-blok noget obskur. Mens det er meget fleksibelt, er det også svært at indstille, svært at fejlsøge og svært at finde ud af, hvad der sker. Min stemme går til din første mulighed,
EXECUTE IMMEDIATE v_query_str INTO v_num_of_employees USING p_job;
Begge bruger bindevariabler, men for det første, for mig, er det mere redeable og tuneable end @jonearles mulighed.