in reply to Having trouble trying to use DBD::Oracle with ActivePerl 5.8.8...

I have Oracle working with the same version of Perl you're using.

I have a gut feeling that your ORA_HOME environment variable is not pointing to the right direction. Do you have an Oracle client installed? When you type SET in cmd, what is ORA_HOME set to?
  • Comment on Re: Having trouble trying to use DBD::Oracle with ActivePerl 5.8.8...

Replies are listed 'Best First'.
Re^2: Having trouble trying to use DBD::Oracle with ActivePerl 5.8.8...
by willjones (Sexton) on Aug 27, 2008 at 10:35 UTC
    Well, I don't have an ORA_HOME environment variable set at all, but I do have an ORACLE_HOME environment variable. It is set to C:\oracle\product\10.1.0\Client_1 Then in my System variables "Path" the very first thing in the path is %ORACLE_HOME%\bin; ... Then in my User Variables (when I right-click on My Computer->Properties->Advanced->Environment Variables) at the top it shows the value of "PATH" beginning with C:\oracle\product\10.1.0\Client_1\bin; (Again as the very first thing in the path.) I took a look at the files in that directory and there are 81 dlls most starting with "ora.." so it seems like it should be the right place. I have Oracle - OraClient10g_home1 installed. If I open a command prompt and type set the Path var shows "C:\oracle\product\10.1.0\Client_1\bin" as the first thing in it. I also have Toad installed by the way and it pulls datasource options from my tnsnames.ora file to get datasource defs. I am able to submit queries with no problem on Toad. I think Toad requires an Oracle client to be installed correctly in order to work.

    I noticed when I open PPM and type DBI it looks like I have two installed. First it shows DBI site 1.601 and then it shows DBI perl 1.58 (where site and perl are under the Area column). There are also 3 other versions available two for 1.602 and one for 1.604. Not sure if this is related to things, but I was thinking DBD-Oracle was dependent on DBI. I tried uninstalling both DBIs but it would only let me uninstall the 1.601 one. After this I clicked on the 1.58 one to be upgraded and it made a new DBI this time 1.602. (The 1.58 one was still showing as installed also.) I uninstalled and re-installed with trouchelle's DBD-Oracle. Still no luck... (Thanks so much to everyone for the pointers so far. Let me know if you have any more ideas.)
      Ok, so i guess its not an oracle client problem.

      Have you tried to look at your PPM areas (>ppm area list)? If there is more than 1, doing '>ppm area sync' might solve the problem. This will make some copies of installed modules so they (theoretically) can be run from any of the install areas.

      If that's not it, I'm out of ideas sorry. :(
        Well, tried PPM area sync. Unfortunately it still didn't work after this. When I run this from the command prompt by typing in perl oracle_test.cgi I get a pop-up window that says, "This application has failed to start because OCI.dll was not found. Re-installing the application may fix this problem." After clicking OK it spits out the html for the error message I shared earlier. I'm not sure why it wouldn't be able to find that file because I have the following line at the top of my code $ENV{NLS_NCHAR}="UTF8"; $ENV{LD_LIBRARY_PATH} = "$ORACLE_LIB:$ENV{LD_LIBRARY_PATH}"; $ENV{ORACLE_HOME} = "$ORACLE_HOME"; where $ORACLE_HOME and $ORACLE_LIB define the paths to my Oracle directory. I read somewhere that you have to compile DBD-Oracle for a specific Oracle Client target. I saw this http://search.cpan.org/src/PYTHIAN/DBD-Oracle-1.22/README.win32.txt Is DBD-Oracle from ActiveState and trouchelle compiled for Oracle Instant Client 11.1.0.6.0 ? I am using Oracle Client 10.1.0g. Could this be my problem? Maybe I should try downloading a different version of Oracle Client? Or is there a way to tell what version a particular DBD-Oracle was compiled for?