l2kashe has asked for the wisdom of the Perl Monks concerning the following question:

Greetings Monks

I have a suite of utilities which work in a shell environment but fail when running as a cgi

To add a bit more detail I am using DBD::Oracle v1.16, on a RH enterprise host running apache, writing cgis via CGI::Safe, connecting to a Solaris 8 host running Oracle 9.x (not sure here, and I am not sure it matters)

The code runs just dandy from the command line, but when executing as a CGI I get the following error

"DBI connect('apdtest','pwh',...) failed: ERROR OCIEnvNlsCreate (check ORACLE_HOME and NLS settings etc.) at blah blah blah"

No problem, lets set ORACLE_HOME and LD_LIBRARY_PATH.. No dice
Ok, lets read the POD.. Ok these NLS_LANG and NLS_NCHAR variables might need to be set as well... Nope that didn't work
Hrm... There is this ORACLE_SID, which I think is my creds.. tweak tweak tweak.. still no dice, not sure where to read up on this

Off to see the monks and supersearch it.
Bingo I hit on Oracle DBD problems with mod_perl and Oracle database connection (sorry haven't been here in awhile and forgot how to link direct), but I have already covered those routes. Additionally I have attempted setting these variables in a BEGIN block as well as main.

I am getting a touch deperate at this point and look forward to some guidance on what my issues may be

Update: Problem solved. It was a permission issue on the root directory oracle was installed to. The executing user didn't have sufficient permission to access the ORACLE files.

use perl;
Everyone should spend some time pounding nails with their forehead for a while before they graduate to complicated stuff like hammers. - Dominus

Updated Steve_p - converted node numbers to links