Things to know
uThe code can be passed as a variable/string.
uThe variable/string cannot exceed 32K.
uPL/SQL - semicolon at the end; don’t return anything
uexecute immediate 'begin p_test; end;';
uSQL – no semicolon at the end; must return the result into the variable of corresponding type (if anything is returned):
uexecute immediate 'select 1 from dual'      
uinto a;