Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

DBD::Oracle error

Status
Not open for further replies.

williamshen25

Programmer
Jan 26, 2011
2
CA
Hi everyone.

I want to create a crawler with perl and run it on crowntab. The program should use DBI and DBD::Oracle to insert data into my database.

When crontab runs it, I get the following error in my mail box.

Can't load '/usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: libclntsh.so.10.1: cannot open shared object file: No such file or directory at /usr/lib/perl5/5.8.5/i386-linux-thread-multi/Dynaloader.pm line 230.

my code is something like:

#!/usr/bin/perl

use Getopt::Long;
use POSIX;
use POSIX qw(setsid);
use warnings;
use Data::Dumper;
use use DBI;
use DBD::Oracle;
use XML::Twig;

init_env();

#do something-----

sub init_env
{
$SIG{'INT'} = 'IGNORE';
$SIG{'QUIT'} = 'IGNORE';
$SIG{'TERM'} = 'IGNORE';
$SIG{'PIPE'} = 'IGNORE';
# signal(SIGPIPE, SIG_IGN);
$SIG{'CHLD'} = 'IGNORE';

my $pid = fork(); die "$!" unless defined $pid; exit 4 if $pid;


POSIX::setsid() or die "Can't start a new session: $!";

# Flush standard output buffer.
select(STDOUT);
$| = 1;
}


BEGIN
{
$ENV{ORACLE_HOME} = "/u01/oracle/product/10.2.0/client_1";
$ENV{PATH} = "/bin:/usr/bin:/u01/oracle/product/10.2.0/client_1/bin:/home/appowner/bin:.";
$ENV{LD_LIBRARY_PATH} = "/u01/oracle/product/10.2.0/client_1/lib";

}
END {

}


I have installed both DBI and DBD::Oracle with CPAN.

Please help and many thanks.

Shen
 
Hey I have figured out there is something wrong with my DBD installation, I corrected it and it run fine when I do it manually on command line, but still getting same error when crontab calls it. I read it on some other site that people suggest to set LD_LIBRARY_PATH to point to where the shared library is. But as you can see, I have set it to the location where "libclntsh.so.10.1" is located. =(
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top