Med det du har visat måste du antingen undkomma parentesen:
echo execute some_procedure\(123,234\) | sqlplus username/[email protected]
Eller omge ditt kommando inom dubbla citattecken:
echo "execute some_procedure(123,234)" | sqlplus username/[email protected]
Båda kommer att stoppa skalet från att försöka tolka parathensen själv, vilket skulle ge dig ett 'syntax error: '(' unexpected
eller liknande fel. Det har egentligen ingenting med Oracle att göra, det är bara hur skaltolken fungerar, innan den når så långt som att leda den ekade strängen till SQL*Plus.
För övrigt skulle jag i allmänhet använda en heredoc för den här typen av saker och undvika att lägga in autentiseringsuppgifterna på kommandoraden så att de inte är synliga via ps
; till exempel:
sqlplus -s /nolog <<!EOF
connect username/[email protected]
execute some_procedure(123,234)
exit
!EOF