S tím, co jste ukázali, musíte buď opustit závorky:
echo execute some_procedure\(123,234\) | sqlplus username/example@sqldat.com
Nebo svůj příkaz uzavřete do uvozovek:
echo "execute some_procedure(123,234)" | sqlplus username/example@sqldat.com
Buď zastaví shell pokoušející se interpretovat závorky sám, což by způsobilo 'syntax error: '(' unexpected nebo podobná chyba. Ve skutečnosti to nemá nic společného s Oracle, jde jen o to, jak funguje interpret shellu, než se dostane tak daleko, že převede echoovaný řetězec do SQL*Plus.
Mimochodem, obecně bych pro tento druh věcí použil heredoc a vyhnul bych se vkládání přihlašovacích údajů na příkazový řádek, aby nebyly viditelné přes ps; například:
sqlplus -s /nolog <<!EOF
connect username/example@sqldat.com
execute some_procedure(123,234)
exit
!EOF