http://qs321.pair.com?node_id=750564


in reply to Oracle::SQLLoader Error

That line in the source code references the environment variable "Oracle_Home" - perhaps that has not been set.
From the Oracle-SQLLoader README:
You should have the following environment variables set: ORACLE_HOME - the location of the Oracle installation ORACLE_SID - the database instance name ORACLE_USERID - the username and password to connect to the database + as the format is username/password (e.g. scott/tiger)

Replies are listed 'Best First'.
Re^2: Oracle::SQLLoader Error
by cocl04 (Sexton) on Mar 16, 2009 at 14:53 UTC

    Thank you so much for your input! That worked. I was missing the environment variables. Below is the code that worked.

    #!/usr/local/bin/perl use strict; use warnings; use diagnostics; use Oracle::SQLLoader qw/$CHAR $INT $DECIMAL $DATE/; # Oracle Path $ENV{'ORACLE_HOME'} = "C:/oracle/ora92"; $ENV{'ORACLE_USER'} = "xxxx"; $ENV{'ORACLE_PASS'} = "xxxx"; $ENV{'ORACLE_SID'} = "xxxxx"; my $user = $ENV{'ORACLE_USER'}; my $pass = $ENV{'ORACLE_PASS'}; my $sid = $ENV{'ORACLE_SID'}; ### load a simple comma-delimited file to a single table my $ldr = new Oracle::SQLLoader( infile => 'C:\Sales_Report_Thru_12_March_2009.csv', terminated_by => ',', username => $user, password => $pass, sid => $sid ); $ldr->addTable(table_name => 'fs_bbbs_collections', when_clauses => "WHEN (01) <> 'Location_ID' and (01) <> 'Type_Description' and (01) <> 'Type_ID' and (01) <> 'DetailType' and (01) <> 'ItemCount' and (01) <> 'Amount'"); $ldr->addColumn(column_name => 'Location_ID'); $ldr->addColumn(column_name => 'Type_Description'); $ldr->addColumn(column_name => 'Type_ID'); $ldr->addColumn(column_name => 'DetailType'); $ldr->addColumn(column_name => 'ItemCount'); $ldr->addColumn(column_name => 'Amount'); $ldr->executeLoader(); # stats my $skipped = $ldr->getNumberSkipped(); my $read = $ldr->getNumberRead(); my $rejects = $ldr->getNumberRejected(); my $discards = $ldr->getNumberDiscarded(); my $loads = $ldr->getNumberLoaded(); my $beginTS = $ldr->getLoadBegin(); my $endTS = $ldr->getLoadEnd(); my $runtimeSecs = $ldr->getElapsedSeconds(); my $secsOnCpu = $ldr->getCpuSeconds();