Bei dem, was Sie gezeigt haben, müssen Sie entweder die Klammern maskieren:
echo execute some_procedure\(123,234\) | sqlplus username/example@sqldat.com
Oder schließen Sie Ihren Befehl in doppelte Anführungszeichen ein:
echo "execute some_procedure(123,234)" | sqlplus username/example@sqldat.com
Beides stoppt die Shell, die versucht, die Klammern selbst zu interpretieren, was zu einem 'syntax error: '(' unexpected oder ähnlicher Fehler. Es hat wirklich nichts mit Oracle zu tun, es ist nur, wie der Shell-Interpreter arbeitet, bevor er so weit kommt, den geechoten String an SQL*Plus weiterzuleiten.
Übrigens würde ich für solche Dinge im Allgemeinen ein Heredoc verwenden und vermeiden, die Anmeldeinformationen in die Befehlszeile zu schreiben, damit sie nicht über ps sichtbar sind; zum Beispiel:
sqlplus -s /nolog <<!EOF
connect username/example@sqldat.com
execute some_procedure(123,234)
exit
!EOF