substituting shell variables

I have a script run_batch.sh as below :-

PAR_VALIDATION=val_siconf
PAR_RUN_LEVEL=1
PAR_EXCLUSIVE_RUN_YN=Y
DATABASE_USER="/@"$TWO_TASK
sqlplus -s $DATABASE_USER |&
print -p -- 'set feed off pause off pages 0 head off veri off line 500'
print -p -- 'set term off time off serveroutput on'
print -p -- "set sqlprompt ''"
print -p -- "SELECT run_command from tmp_run_batch;"
read -p run_command
echo $run_command
print -p -- "execute dbms_output.put_line($run_command);"

The sql statement "SELECT run_command from tmp_run_batch;" gives the output :-
pack_claims_clload_mesg.func_main($PAR_VALIDATION,$PAR_RUN_LEVEL,$PAR_EXCLUSIVE
_RUN_YN)

Now if I run the shell using the command :-
ksh run_batch.sh

It echoes :-
pack_claims_clload_mesg.func_main($PAR_VALIDATION,$PAR_RUN_LEVEL,$PAR_EXCLUSIVE
_RUN_YN)
without substituting the shell variables with their values and the next statement of executing the database package also fails.

Can you suggest any method to substitute the shell variables with their values ?

Cheers
Suds

Try this as your last statement:
eval print -p -- \""execute dbms_output.put_line($run_command);"\"