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

I have a perl application which uses the Oracle DBD to connect to Oracle. It connects and works fine when using perl.

When running this same application under mod_perl, I get the following error on connection:

(UNKNOWN OCI STATUS 1804) OCIInitialize. Check ORACLE_HOME and NLS settings etc.

I dump the environment on error, and the ORACLE_HOME, ORACLE_SID, and LD_LIBRARY_PATHS are all correct. These are the only Oracle-related environment variables that are set, and they are set by the application. They're the same in both the perl and mod_perl environments.

What could be different in the mod_perl environment that is causing this to fail? I checked the @INC, and it appears to be getting the same and as when the app is ran in a perl environment.

I'd love to hear any suggestions, I haven't had much luck with this and haven't found any information online. What am I missing?

Also, note that it does work using MySQL under mod_perl. It is just Oracle which is giving me problems.