S tím, co jste ukázali, musíte buď opustit závorky:
echo execute some_procedure\(123,234\) | sqlplus username/[email protected]
Nebo svůj příkaz uzavřete do uvozovek:
echo "execute some_procedure(123,234)" | sqlplus username/[email protected]
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/[email protected]
execute some_procedure(123,234)
exit
!EOF