[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

connecting to an oracle database

ruud grosmann

2/5/2009 10:28:00 AM

hi group,

I have problems connection to an oracle database using dbi.

machine: debian lenny,
ruby: ruby 1.8.7 (2008-08-11 patchlevel 72)

Using several descriptions on internet I have downloaded
ruby-oci8-1.0.3.tar and installed it.

The result is that I can open a database using a OCI8 object, but not
using a DBI object. I understood that the way to use DBI is by
installing that package.

Following a test script and its output. Can someone tell me what could
be wrong? Do I need to install another package?

thanks in advance, Ruud


============ script
require 'oci8'
require 'dbi'

connection = OCI8.new( 'user', 'pwd', 'database')
cursor = connection.exec('select id, description, name from role')
while r = cursor.fetch()
puts r.join(',')
end
cursor.close
connection.logoff

puts "and now using DBI"

puts DBI.available_drivers
db = DBI.connect('DBI:OCI8:database', 'user', 'pwd')
sql = "select id from role"

dbh.select_all(sql) do | row |
p row
end

dbh.disconnect

==============output
1,admin,admin
2,traffic,traffic
and now using DBI
dbi:ODBC:
/usr/lib/ruby/1.8/DBD/ODBC/ODBC.rb:95:in `connect': IM002 (0)
[iODBC][Driver Manager]Data source name not found and no default
driver specified. Driver could not be loaded (DBI::DatabaseError)
from /usr/lib/ruby/1.8/dbi.rb:424:in `connect'
from /usr/lib/ruby/1.8/dbi.rb:215:in `connect'
from leesdb:18

5 Answers

Robert Klemme

2/5/2009 12:57:00 PM

0

2009/2/5 ruud grosmann <r.grosmann@gmail.com>:
> hi group,
>
> I have problems connection to an oracle database using dbi.
>
> machine: debian lenny,
> ruby: ruby 1.8.7 (2008-08-11 patchlevel 72)
>
> Using several descriptions on internet I have downloaded
> ruby-oci8-1.0.3.tar and installed it.
>
> The result is that I can open a database using a OCI8 object, but not
> using a DBI object. I understood that the way to use DBI is by
> installing that package.
>
> Following a test script and its output. Can someone tell me what could
> be wrong? Do I need to install another package?
>
> thanks in advance, Ruud
>
>
> ============ script
> require 'oci8'
> require 'dbi'
>
> connection = OCI8.new( 'user', 'pwd', 'database')
> cursor = connection.exec('select id, description, name from role')
> while r = cursor.fetch()
> puts r.join(',')
> end
> cursor.close
> connection.logoff
>
> puts "and now using DBI"
>
> puts DBI.available_drivers
> db = DBI.connect('DBI:OCI8:database', 'user', 'pwd')
> sql = "select id from role"
>
> dbh.select_all(sql) do | row |
> p row
> end
>
> dbh.disconnect
>
> ==============output
> 1,admin,admin
> 2,traffic,traffic
> and now using DBI
> dbi:ODBC:
> /usr/lib/ruby/1.8/DBD/ODBC/ODBC.rb:95:in `connect': IM002 (0)
> [iODBC][Driver Manager]Data source name not found and no default
> driver specified. Driver could not be loaded (DBI::DatabaseError)
> from /usr/lib/ruby/1.8/dbi.rb:424:in `connect'
> from /usr/lib/ruby/1.8/dbi.rb:215:in `connect'
> from leesdb:18#

Note, I am not using DBI just trying to throw in my 0.02EUR Oracle knowledge.

Looks like it attempts to not use OCI but ODBC instead. Did you check
output of these:

DBI.available_drivers
DBI.data_sources( driver )

You could also try DBI.trace to get more interesting output.

Btw, you do have an Oracle client installed, do you?

Kind regards

robert

--
remember.guy do |as, often| as.you_can - without end

ruud grosmann

2/5/2009 1:14:00 PM

0

The output of DBI.available_drivers is in my first mail. OCI8 is not
available. But I was convinced that installing ruby-oci8 would install
the OCI8-dbd. That is not true, apparently.

I was wondering why and what I have to do to get it installed.

I have the full Oracle client installed.

thanks for helping, Ruud

On 05/02/2009, Robert Klemme <shortcutter@googlemail.com> wrote:
> 2009/2/5 ruud grosmann <r.grosmann@gmail.com>:
>> hi group,
>>
>> I have problems connection to an oracle database using dbi.
>>
>> machine: debian lenny,
>> ruby: ruby 1.8.7 (2008-08-11 patchlevel 72)
>>
>> Using several descriptions on internet I have downloaded
>> ruby-oci8-1.0.3.tar and installed it.
>>
>> The result is that I can open a database using a OCI8 object, but not
>> using a DBI object. I understood that the way to use DBI is by
>> installing that package.
>>
>> Following a test script and its output. Can someone tell me what could
>> be wrong? Do I need to install another package?
>>
>> thanks in advance, Ruud
>>
>>
>> ============ script
>> require 'oci8'
>> require 'dbi'
>>
>> connection = OCI8.new( 'user', 'pwd', 'database')
>> cursor = connection.exec('select id, description, name from role')
>> while r = cursor.fetch()
>> puts r.join(',')
>> end
>> cursor.close
>> connection.logoff
>>
>> puts "and now using DBI"
>>
>> puts DBI.available_drivers
>> db = DBI.connect('DBI:OCI8:database', 'user', 'pwd')
>> sql = "select id from role"
>>
>> dbh.select_all(sql) do | row |
>> p row
>> end
>>
>> dbh.disconnect
>>
>> ==============output
>> 1,admin,admin
>> 2,traffic,traffic
>> and now using DBI
>> dbi:ODBC:
>> /usr/lib/ruby/1.8/DBD/ODBC/ODBC.rb:95:in `connect': IM002 (0)
>> [iODBC][Driver Manager]Data source name not found and no default
>> driver specified. Driver could not be loaded (DBI::DatabaseError)
>> from /usr/lib/ruby/1.8/dbi.rb:424:in `connect'
>> from /usr/lib/ruby/1.8/dbi.rb:215:in `connect'
>> from leesdb:18#
>
> Note, I am not using DBI just trying to throw in my 0.02EUR Oracle
> knowledge.
>
> Looks like it attempts to not use OCI but ODBC instead. Did you check
> output of these:
>
> DBI.available_drivers
> DBI.data_sources( driver )
>
> You could also try DBI.trace to get more interesting output.
>
> Btw, you do have an Oracle client installed, do you?
>
> Kind regards
>
> robert
>
> --
> remember.guy do |as, often| as.you_can - without end
>
>

Robert Klemme

2/5/2009 1:22:00 PM

0

Please do not top post.

2009/2/5 ruud grosmann <r.grosmann@gmail.com>:
> The output of DBI.available_drivers is in my first mail.

Oh, I overlooked that one. Sorry.

> OCI8 is not
> available. But I was convinced that installing ruby-oci8 would install
> the OCI8-dbd. That is not true, apparently.

Maybe you need to additionally require something like dbi/oci8 - it's
been a while that I used that so my memory may fail me here.

Cheers

robert

--
remember.guy do |as, often| as.you_can - without end

ruud grosmann

2/5/2009 3:07:00 PM

0

> Maybe you need to additionally require something like dbi/oci8 - it's
> been a while that I used that so my memory may fail me here.

I am sorry to have made a mess of my code example + output. The output
is a cut and past of two different versions. In the output, the ODBC
driver was mentioned, while I didn't use it in the script.
It should read

dbi:ODBC:
/usr/local/lib/ruby/site_ruby/1.8/dbi.rb:312:in `load_driver': Could
not load driver (uninitialized constant OCI8::Driver)
(DBI::InterfaceError)
from /usr/local/lib/ruby/site_ruby/1.8/dbi.rb:154:in `_get_full_driver'
from /usr/local/lib/ruby/site_ruby/1.8/dbi.rb:139:in `connect'
from leeseb4:18

The problem is solved now; I have put OCI8.rb in the db folder and got
it from ttp://ruby-oci8.rubyforge.org/svn/branches/ruby-oci8-1.0/lib/dbd/OCI8.rb

Thanks for helping,

Ruud

On 05/02/2009, Robert Klemme <shortcutter@googlemail.com> wrote:
> Please do not top post.
>
> 2009/2/5 ruud grosmann <r.grosmann@gmail.com>:
>> The output of DBI.available_drivers is in my first mail.
>
> Oh, I overlooked that one. Sorry.
>
>> OCI8 is not
>> available. But I was convinced that installing ruby-oci8 would install
>> the OCI8-dbd. That is not true, apparently.
>
> Maybe you need to additionally require something like dbi/oci8 - it's
> been a while that I used that so my memory may fail me here.
>
> Cheers
>
> robert
>
> --
> remember.guy do |as, often| as.you_can - without end
>
>

from_me_to_you

3/27/2011 6:16:00 PM

0

On Mar 27, 2:07 am, Fattuchus <fattuc...@yahoo.com> wrote:
> On Mar 26, 6:31 pm, The Lone Star <from_me_to_...@comcast.net> wrote:
>
> > On Mar 25, 4:58 pm, The Lone Star <from_me_to_...@comcast.net> wrote:
>
> > > The Beatles in Hamburg used to do Hank's song "Hey Good Lookin".
>
> > Yeah, the singer in the song is a bit CRAZY!
>
> > He is CRAZY in love, and it's got him doing CRAZY things, so I tried
> > to look a bit CRAZY!
>
> > Okay... I didn't have to try that hard, but I'm 61 and retired so I
> > can be a bit CRAZY if I want to!  Ha!
>
> >http://www.youtube.com/watch?v=N...
>
> Applause.  Very nice.

I appreciate your comment very much, Gay! I got a new iMac? and have
discovered that (at least with mine) the built in mic is not as good
as with the older iMac that I had, and as a result the sound on the
video is not quite what I would have hoped, but I really do appreciate
what you have said!

You are one of the bright lights here in RMB!