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
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)
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.
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
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.