Well, to start, you should **always** print the Oracle error message 
($DBI->errstr).  This will tell you more than we on this list could even hope 
to guess.

Next, if it runs from the command line, then you most likely have a permissions 
issue with either the Perl script itself, or the Oracle.so library.

-----------------
Ron Reidy
Lead DBA
Array BioPharma, Inc.


-----Original Message-----
From: Malka Cymbalista [mailto:[EMAIL PROTECTED]
Sent: Wednesday, May 25, 2005 5:47 AM
To: dbi-users@perl.org
Subject: problem with DBD::Oracle


Our web server is  running Apache 2.0.48 with mod_perl 1.99_12 on a Sun
machine running Solaris 9. We are running perl 5.8.1, DBI 1.39 and
DBD-Oracle 1.16. We are trying to connect from our web server to an
Oracle database that is on a different machine.   The script that we
wrote to do this runs perfectly well when we run it from the command
line as a plain user.  However, when we try running it from the web, we
cannot connect to the database.  
When running from the web, the following environment variables are
printed properly:
TWO_TASK 
ORACLE_SID 
LIBPATH 
LD_LIBRARY_PATH 
ORACLE_HOME
SHLIB_PATH 

I use the following code to connect to the database:
if ( ! ($dbh = DBI->connect("dbi:Oracle:", $dbuser, '', { PrintError =>
0, AutoCommit => 0 }))) {
    print "Error: cannot connect to DB<br>\n";
    exit(0);
}
$dbuser is defined as
$dbuser = 'userid/password';

After all the environment variables are printed out, I get the message 
 Error: cannot connect to DB

As I said at the start, the script works perfectly well from the
command line even when it is run from the same userid that the web runs
under.  

Any suggestions to get this working from the web will be greatly
appreciated.  Thanks in advance.




Malka Cymbalista
Webmaster, Weizmann Institute of Science
[EMAIL PROTECTED]
08-934-3036

This electronic message transmission is a PRIVATE communication which contains
information which may be confidential or privileged. The information is 
intended 
to be for the use of the individual or entity named above. If you are not the 
intended recipient, please be aware that any disclosure, copying, distribution 
or use of the contents of this information is prohibited. Please notify the
sender  of the delivery error by replying to this message, or notify us by
telephone (877-633-2436, ext. 0), and then delete it from your system.

Reply via email to