The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

ETLp::Loader::OracleSQLLoader - Load data using SQL*Loader

SYNOPSIS

This module will load data using Oracle's SQL*Loader utility. It is designed to be used when:

    * The backend database is Oracle
    * The functionality is not provided by ETLp::Loader::CSV
    * Speed is of the essence, and features such as direct path or
      parallel loading are required.

For Example

    use ETLp::Loader::OracleSQLLoader;

    my $sqlldr = ETLp::Loader::OracleSQLLoader->new(
        userid           => 'scott/tiger',
        table            => 'scores',
        filename         => "$data_directory/$filename",
        specification    => $specification,
        mode             => 'truncate',
        controlfile      => "$outfile_directory/$filename.ctl",
        logfile          => "$outfile_directory/$filename.log",
        discardfile      => "$outfile_directory/$filename.dsc",
        badfile          => "$outfile_directory/$filename.bad",
    );
    
    my $recode = $sqlldr->load;
    
    if ($retcode) {
        print $sqlldr->error;
    }
    

METHODS

new

Creates a new ETLp::Loader::OracleSQLLoader object. Accespts the following attributes:

    * userid. Required. The username and password of the user connecting
      to the database, in the form:
          o <user>/<password> or
          o <user>/<password>@<tns alias>
    * controlfile. Required. The name of the control file. The content
      will be generated by this module.
    * table. Required. The name of the table that the data will be loaded
      into
    * filename. Required. The file to be loaded.
    * mode. Optional. The type of load - append, truncate, insert or
      replace. Defaults to append
    * specification. Required. The specification of the incoming file and
      the processing. E.g.
      
            fields terminated by "," 
            (id, name, score, file_id constant 4)
            
    * logfile. Optional. The name of the log file
    * badfile. Optional. The name of the bad file.
    * discardfile . Optional. The name of the discardfile.
    * keep_controlfile. Optional. Whether to keep the control file
      following processing. Defaults to no (0).
    * keep_logfile. Optional. Whether to keep the log file
      following processing. Defaults to yes (1).
    * keep_badfile. Optional. Whether to keep the bad file
      following processing. Defaults to yes (1).
    * keep_discardfile. Optional. Whether to keep the discard file
      following processing. Defaults to yes (1).
    * localize. Optional. Whether to localize (fix for current OS), the
      data file's end-of-line delimiters. Defaults to no (0).
    * parameters. Optional. A hashref of SQL*Loader command-line
      parameters (excluding control, log, bad and discard)

run

Invoke the SQL*Loader run. Will return a code, that is an integer between 0 and 3:

   * 0 - successful 
   * 1 - failed 
   * 2 - warn 
   * 3 - fatal
   

Examples

   * All rows loader successfully - 0 
   * All/some rows discarded      - 2 
   * All/some row rejected        - 2 
   * Discontinued load            - 2 
   * Command line/syntax errors   - 1 
   * Errors Fatal to Sql*Loader   - 1 
   * OS related errors            - 3

command

Return the constructed SQL*Loader command - the sqlldr invocation and the user authentication information if not included

controlfile_content

Return the content of the controlfile

error

Return any error generated following the SQL*Loader run

output

Return the output from a SQL*Loader run

LICENSE AND COPYRIGHT

Copyright 2010 Redbone Systems Ltd

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

The terms are in the LICENSE file that accompanies this application