in reply to using stdin with sqlldr

New answer to an old post, but here's an example of loading to a table using (brand new module as of this post) DBIx::BulkUtil. This library can do the traditional "load from a file", or you can create a function to generate and return the rows of data (or pass in your own file handle for sqlldr to read) to be fed to sqlldr through stdin:
my ($dbh, $dbu) = DBIx::BulkUtil->ora_connect( Database => $database, User => $user, Password => $pw, ); # Assuming two column table # Default is "|" column delimited, "\n" row delimited my @rows = qw( abc|def ghi|jkl ); sub insert_row { my $data = shift @rows or return; return $data . "\n"; } $dbu->bcp_in($table, '-', { Stdin => \&insert_row, }); $dbh->disconnect();