I have ORACLE account with at sign (@) into password.
I was using sqlplus 12 and I can handle this special character with this syntax :
sqlplus 'USER/\"@PWD\"@SERVER:1521/BASE'
Using now sqlplus 19, this doesn't work anymore. And after many tests (sqlplus v18 v19 and v21) on multiple OS (RHEL7 RHEL8 CentOS7), the problem is the same. I've tested a lot of escape methods and search all over internet without finding anything that works.
The problem seems specific to @ sign, I can escape a ! with a \ for example.
EDIT : I need to automate this, so solution with human interaction are not solution to my problem.
Based on @Roberto Hernandez's answer, I've used his solution modified a bit to work inside script without the need to type password interactively :
sqlplus /nolog << EOF\nconn <user>/"<password>"@<server>:1521/<base>\n@"<script>"