O erro indica que o problema está aqui:
REGEXP_LIKE(tran_particular,'[^[:alnum:] \'\'\'\~\!\@\#\$\%\^\&\*\-\_\{\}\;\"\:\/\.\,\<\>\?\(\)\]\'\)\;
^
O shell interpreta este backquote como fechando o em COUNT=
, e tenta executar o restante da linha como um comando, ~!@#$%^&*-_{};":/.,<>?()]');
.
Tente isto:
COUNT=$(sqlplus -s $USER/$PASS@proddb <<EOF
<snip>
EOF
)
A construção $()
é geralmente mais segura (e mais fácil de ler).