Search code examples
linuxoraclesqlplusoracle19c

How to use password containing @ with sqlplus 18, 19 or 21 on linux?


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.


Solution

  • 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>"