I think this is one of Oracle FAQ.
Some of Oracle DB command line tools handle filename with space in it in a tad non-standard way :)
Just little differently from those like /usr/bin/*
OTN Discussion Forums : can Sqlldr load data where datafilename ...
The problem is space between the a and demo
Thats the reason sqloader it interprets as another parameter....
use backslash to avoid this...
Today, I found another less frequently used command behaves the same way.
'lcsscan' detects language and encoding used in a given file on local file system.
$$ORACLE_HOME/bin/lcsscan file= /tmp/test/a\ b.txt// Fails[...] You can control how LCSSCAN runs by entering the LCSSCAN command followed by the required parameters. To specify parameters, you use keywords: Example: LCSSCAN RESULTS=2 END=1000 FORMAT=HTML FILE=index.html $$ORACLE_HOME/bin/lcsscan file= \'/tmp/test/a b.txt\'// Works Language and Character Set File Scanner v2.1 (c) Copyright 2003, 2012 Oracle Corporation. All rights reserved. /tmp/test/a b.txt: JAPANESE JA16EUC;