Dengan apa yang telah Anda tunjukkan, Anda juga harus keluar dari tanda kurung:
echo execute some_procedure\(123,234\) | sqlplus username/example@sqldat.com
Atau lampirkan perintah Anda dalam tanda kutip ganda:
echo "execute some_procedure(123,234)" | sqlplus username/example@sqldat.com
Entah akan menghentikan Shell yang mencoba menafsirkan parathens itu sendiri, yang akan memberi Anda 'syntax error: '(' unexpected atau kesalahan serupa. Sebenarnya ini tidak ada hubungannya dengan Oracle, ini hanya cara kerja penerjemah shell, sebelum sampai pada pemipaan string yang digaungkan ke SQL*Plus.
Kebetulan, saya biasanya menggunakan heredoc untuk hal semacam ini, dan menghindari meletakkan kredensial pada baris perintah sehingga tidak terlihat melalui ps; misalnya:
sqlplus -s /nolog <<!EOF
connect username/example@sqldat.com
execute some_procedure(123,234)
exit
!EOF