The wait waits for all jobs to finish.
If your jobs have a different run time and you want to keep the running jobs near the allowed maximum, then count them with the jobs command
parallel=3
while read name
do
echo "running $name"
(
sqlplus ...
) &
while [ `jobs | wc -l` -ge $parallel ]; do sleep 2; done
done < abc.txt