ruby:0:in `require': no such file to load -- oci8 (LoadError)

Hi,

I am been struggling with oracle db connection from RoR app in my new
windows machine which I was able to it n other windows machine a
couple of years ago.
I installed everything (ruby, rubygem and oracle instant client and
ran ruby oci8 command ) and my RoR web app runs ok except oracle DB
connection part.

I tested from command line like this:

C:\ruby_old>ruby -r oci8 -e "OCI8.new('username', 'password',
'jdbc:oracle
:thin:@abc.efg.aaa:1521:xxxx).exec('create table testtab (id1 number)'
) "
ruby:0:in `require': no such file to load -- oci8 (LoadError)

from the RoR web app, I get this error:

ORA-12154: TNS:could not resolve the connect identifier specified

RAILS_ROOT: ./script/../config/..
Application Trace | Framework Trace | Full Trace

env.c:257:in oci8lib.so
C:/web/IPSO/app/controllers/attending_ips_controller.rb:140:in
`get_most_recent_record'
...
...

Am I missing something here?

thanks in advance,
Daniel

Hi,

I am been struggling with oracle db connection from RoR app in my new
windows machine which I was able to it n other windows machine a
couple of years ago.
I installed everything (ruby, rubygem and oracle instant client and
ran ruby oci8 command ) and my RoR web app runs ok except oracle DB
connection part.

I tested from command line like this:

C:\ruby_old>ruby -r oci8 -e "OCI8.new('username', 'password',
'jdbc:oracle
:thin:@abc.efg.aaa:1521:xxxx).exec('create table testtab (id1 number)'
) "
ruby:0:in `require': no such file to load -- oci8 (LoadError)

Assuming oci8 is a gem, you'd need to require rubygems before you can
require oci8. If you then get the same error as from the rails app
then maybe your connect identifier is indeed bust or perhaps oracle
needs more stuff setup (I've never used oracle)

Fred

After this command, I still get same error.
gem install ruby-oci8 -v 2.0.3

my oracle connect identifier works fine in another windows machine
that is prod env. So, I assume oracle stuff is ok.

After this command, I still get same error.
gem install ruby-oci8 -v 2.0.3

When I said require rubygems I meant that you need to do -rrubygems as
well as -roci8

my oracle connect identifier works fine in another windows machine
that is prod env. So, I assume oracle stuff is ok.

Does oracle require any environment variables or configuration files
etc ? I know nothing about oracle but
http://www.oracle.com/technology/tech/java/sqlj_jdbc/htdocs/jdbc_faq.html#03_01
seems to suggest that jdbc:oracle:thin is appropriate when using jdbc,
which you're not.

Fred

When I said require rubygems I meant that you need to do -rrubygems as
well as -roci8

hm..I am confusing. do you mean updating gems? If so, I just did and
still get same error.

Does oracle require any environment variables or configuration files
etc ? I know nothing about oracle buthttp://www.oracle.com/technology/tech/java/sqlj_jdbc/htdocs/jdbc_faq…
seems to suggest that jdbc:oracle:thin is appropriate when using jdbc,
which you're not.

I downloaded oracle instant client and set env classpath. I indeed use
jdbc:oracle:thin like this
"jdbc:oracle:thin:@xxx.xxx.org:1521:xxxx"
Last year, I also remembered that I downloaded ruby-oci8-x.x.x-
mswin32.rb and ran on command line and it copied some files under ruby
dir. I don't know if this done by gem command these days.

> When I said require rubygems I meant that you need to do -rrubygems as
> well as -roci8

hm..I am confusing. do you mean updating gems? If so, I just did and
still get same error.

That's not what I mean. I mean that if oci8 is a gem then ruby -roci8
won't be able to load it because to load gems, the rubygems library
must be loaded first. The fact that it can't find oci8 suggest that
either this is true or that oci8 isn't the thing that you need to
require.

> Does oracle require any environment variables or configuration files
> etc ? I know nothing about oracle buthttp://www.oracle.com/technology/tech/java/sqlj_jdbc/htdocs/jdbc_faq…
> seems to suggest that jdbc:oracle:thin is appropriate when using jdbc,
> which you're not.

I downloaded oracle instant client and set env classpath. I indeed use
jdbc:oracle:thin like this
"jdbc:oracle:thin:@xxx.xxx.org:1521:xxxx"
Last year, I also remembered that I downloaded ruby-oci8-x.x.x-
mswin32.rb and ran on command line and it copied some files under ruby
dir. I don't know if this done by gem command these days.

Ruby certainly isn't using jdbc, so you probably don't want all that
jdbc stuff at the front.

Fred