Menurut pendapat saya, blok PL/SQL dinamis agak tidak jelas. Meskipun sangat fleksibel, juga sulit untuk disetel, sulit untuk di-debug, dan sulit untuk mengetahui apa yang terjadi. Suara saya beralih ke opsi pertama Anda,
EXECUTE IMMEDIATE v_query_str INTO v_num_of_employees USING p_job;
Keduanya menggunakan variabel bind, tetapi pertama-tama, bagi saya, lebih dapat di-redeable dan disetel daripada opsi @jonearles.