SQL*Loader has a powerful interface that allows loads from different sources; it can read data from disk, tape or a named pipe. This feature allows loads on the fly without the creation of an intermediate data file, which is a very convenient strategy for loads that will only take place once and whose data source is dynamic. Let's have a named pipe created, so there is no datafile in-between, and data is directly consumed by the database through SQL*Loader.
On the OS prompt, let's create a named pipe. A process will then send data to the named pipe and SQL*Loader will read it from there.
Note
This data load procedure is not available for Windows as this platform does not allow the use of the named pipes required to perform the data load on the fly.
At a Unix prompt, let's create a regular named pipe:
mkfifo abcpipe.dat
Send data to the named pipe and leave the process in the background:
cat abc.dat > abcpipe.dat &
Load data from the named pipe:
sqlldr sqlldrdemo/oracle...