For example, call sqlldr:

sqlldr SYSTEM/PA$$WORD control=loader.ctl > output.txt 

And we get in the answer:

 SQL*Loader: Release 10.2.0.1.0 - Production on Wed Nov 21 17:00:14 2012 Copyright (c) 1982, 2005, Oracle. All rights reserved. SQL*Loader-128: unable to begin a session ORA-01017: invalid username/password; logon denied 

And if you just call sqlldr control=loader.ctl and then enter username and password from the keyboard, then everything is fine.

    2 answers 2

    Use double quotes. In sqlplus / sqlldr:

     SQL> connect SYSTEM/"PA$$WORD"; 

    At the command prompt:

     sqlplus SYSTEM/"PA$$WORD"@DATABASE_NAME или sqlplus SYSTEM/\"PA$$WORD\"@DATABASE_NAME 

      In the command line shell escape with a symbol \ or single quotes:

       ~$ sqlldr system/pa\$\$word@dbsrv/service_name control=loader.ctl ~$ sqlplus -l system/'pa$$word'@dbsrv/service_name 

      In the sqlplus or sqlldr line, sqlplus sqlldr set the password as is:

       ~$ sqlplus /nolog SQL> conn system/pa$$word@dbsrv/service_name Connected.