Mając to, co pokazałeś, musisz albo uciec od nawiasów:
echo execute some_procedure\(123,234\) | sqlplus username/example@sqldat.com
Lub umieść swoje polecenie w podwójnych cudzysłowach:
echo "execute some_procedure(123,234)" | sqlplus username/example@sqldat.com
Albo zatrzyma powłokę próbującą zinterpretować same nawiasy, co dałoby ci 'syntax error: '(' unexpected lub podobny błąd. Tak naprawdę nie ma to nic wspólnego z Oracle, chodzi po prostu o to, jak działa interpreter powłoki, zanim dotrze on do przesyłania łańcucha z echem do SQL*Plus.
Nawiasem mówiąc, generalnie używałbym heredoc do tego rodzaju rzeczy i unikałbym umieszczania poświadczeń w wierszu poleceń, aby nie były widoczne przez ps; na przykład:
sqlplus -s /nolog <<!EOF
connect username/example@sqldat.com
execute some_procedure(123,234)
exit
!EOF