[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

Witch Oracle library should I use

Ben Edwards

5/4/2007 3:27:00 PM

Have had a look on rubyforge and done a little looking around but not
totaly sure which ruby oracle library's I should use.

I am connecting to a 10g database.

Ruby9i and Ruby/OCI8 seem to be the contenders, or is there something else.

What would people recommend?

Ben
--
Ben Edwards - Bristol, UK
If you have a problem emailing me use
http://www.gurtlush.org.uk/profiles...
(email address this email is sent from may be defunct)

19 Answers

Brian Candler

5/4/2007 6:39:00 PM

0

On Sat, May 05, 2007 at 12:27:13AM +0900, Ben Edwards wrote:
> Have had a look on rubyforge and done a little looking around but not
> totaly sure which ruby oracle library's I should use.
>
> I am connecting to a 10g database.
>
> Ruby9i and Ruby/OCI8 seem to be the contenders, or is there something else.
>
> What would people recommend?

ruby-oci8. It's been around for a long time, and it works well. It's the API
used by ActiveRecord's Oracle adaptor, and it also comes with a DBD for use
with ruby-dbi. I'm using it with Oracle 10g now.

I've never seen or used Ruby9i though.

Ulf Hellström

5/4/2007 6:56:00 PM

0

Hi,

I'm new on this mailing list. My name is Ulf , lives in Sweden and
been developing for Oracle for many, many years. Used to work for
Oracle for 10 years.
I've been studying and learning Ruby for aroune 2 months now and has
done some work with Ruby and Oracle.
As suggested i would defenly say go for Ruby/OCI8

There are some good introductions on how to use Ruby with Oracle on
OTN (Oracle Technology Network)

See the following links:

http://www.oracle.com/technology/pub/articles/marx...
http://www.oracle.com/technology/pub/articles/tate-activeer...
http://www.oracle.com/technology/pub/articles/haefel-oracle...
http://www.oracle.com/technology/pub/articles/saternos-...

Kindly Rgds
/Ulf


On 4 maj 2007, at 20.38, Brian Candler wrote:

> On Sat, May 05, 2007 at 12:27:13AM +0900, Ben Edwards wrote:
>> Have had a look on rubyforge and done a little looking around but not
>> totaly sure which ruby oracle library's I should use.
>>
>> I am connecting to a 10g database.
>>
>> Ruby9i and Ruby/OCI8 seem to be the contenders, or is there
>> something else.
>>
>> What would people recommend?
>
> ruby-oci8. It's been around for a long time, and it works well.
> It's the API
> used by ActiveRecord's Oracle adaptor, and it also comes with a DBD
> for use
> with ruby-dbi. I'm using it with Oracle 10g now.
>
> I've never seen or used Ruby9i though.
>


Ben Edwards

5/4/2007 7:38:00 PM

0

On 04/05/07, Ulf Hellström <uhellstr@mac.com> wrote:
> Hi,
>
> I'm new on this mailing list. My name is Ulf , lives in Sweden and
> been developing for Oracle for many, many years. Used to work for
> Oracle for 10 years.
> I've been studying and learning Ruby for aroune 2 months now and has
> done some work with Ruby and Oracle.
> As suggested i would defenly say go for Ruby/OCI8
>
> There are some good introductions on how to use Ruby with Oracle on
> OTN (Oracle Technology Network)
>
> See the following links:
>
> http://www.oracle.com/technology/pub/articles/marx...
> http://www.oracle.com/technology/pub/articles/tate-activeer...
> http://www.oracle.com/technology/pub/articles/haefel-oracle...
> http://www.oracle.com/technology/pub/articles/saternos-...

Thanks for this. Have been trying Ruby/OCI8 and it seems to work.
Only thing is when it fetches row it is referenced as an array
(row[0], row[1]...). Is there a way of referencing the column names
(row["username"]...).

Ben

> Kindly Rgds
> /Ulf
> Ruby/OCI8
>
> On 4 maj 2007, at 20.38, Brian Candler wrote:
>
> > On Sat, May 05, 2007 at 12:27:13AM +0900, Ben Edwards wrote:
> >> Have had a look on rubyforge and done a little looking around but not
> >> totaly sure which ruby oracle library's I should use.
> >>
> >> I am connecting to a 10g database.
> >>
> >> Ruby9i and Ruby/OCI8 seem to be the contenders, or is there
> >> something else.
> >>
> >> What would people recommend?
> >
> > ruby-oci8. It's been around for a long time, and it works well.
> > It's the API
> > used by ActiveRecord's Oracle adaptor, and it also comes with a DBD
> > for use
> > with ruby-dbi. I'm using it with Oracle 10g now.
> >
> > I've never seen or used Ruby9i though.
> >
>
>
>


--
Ben Edwards - Bristol, UK
If you have a problem emailing me use
http://www.gurtlush.org.uk/profiles...
(email address this email is sent from may be defunct)

dave rose

5/4/2007 7:57:00 PM

0

Ben Edwards wrote:
> On 04/05/07, Ulf Hellstr�m <uhellstr@mac.com> wrote:
>> OTN (Oracle Technology Network)
>>
>> See the following links:
>>
>> http://www.oracle.com/technology/pub/articles/marx...
>> http://www.oracle.com/technology/pub/articles/tate-activeer...
>> http://www.oracle.com/technology/pub/articles/haefel-oracle...
>> http://www.oracle.com/technology/pub/articles/saternos-...
>
> Thanks for this. Have been trying Ruby/OCI8 and it seems to work.
> Only thing is when it fetches row it is referenced as an array
> (row[0], row[1]...). Is there a way of referencing the column names
> (row["username"]...).
>
> Ben

i did a describe on my table that has a lot of column
and cut & pasted the result (in order) into a ruby array
and whose named ruby array.index(named column) address that certain
corresponding column in the ruby
oci8 array....
readcols="_CODE, V_NUM, CUST_CODE, STYP_CODE, CAT_CODE, ACTN_CODE,
ACTION_DATE, ACTIVITY_DATE, USER_ID, READING, UMPTION, DOS, RTYP,
REAS_CE, ARGE_DATE, UR_CALC_NUM, INVN_CODE, UIER, U_CADJM, U_FACTOR,
UR_HIGH_LOW_EXCP, UR_TRBL_CODE_1, UR_TRBL_CODE_2, U_TRBL_CODE_3,
AT_CODE, _CHARGE_FREQUENCY, U_CHARGE_START_DATE, UR_NUTS,
UR_REAS_CODE_CNCL, US_CNCL_DATE, URR_CNCL_USER_ID, UR_CUST_CODE_PRIMARY,
URRCODE_PRIMAR...and on and on....".split(", ")
recs=conn.exec("SELECT * FROM atable WHERE CODE NOT IN
('IN','SKIP','OUT') AND CODE = '#{prem}' AND CUST_CODE = #{cust.to_i}
AND TO_CHAR(GE_DATE,'YYYYMMDD') = '#{chargedon}' AND IS_DOS > 0"){|r|
readrec<<r}
readrec.each do |tut|
prevdait=tut[readcols.index("_DATE")]

--
Posted via http://www.ruby-....

Brian Candler

5/4/2007 8:12:00 PM

0

On Sat, May 05, 2007 at 04:37:34AM +0900, Ben Edwards wrote:
> Thanks for this. Have been trying Ruby/OCI8 and it seems to work.
> Only thing is when it fetches row it is referenced as an array
> (row[0], row[1]...). Is there a way of referencing the column names
> (row["username"]...).

You could steal some code from ActiveRecord's Oracle connection adaptor.
When you call Foo.connection.select_all(...) in ActiveRecord, it returns
an array of
[{colname=>value, colname=>value},
{colname=>value, colname=>value},
...]

Or I have a vague recollection that maybe ruby-dbi will do this for you.

Ulf Hellström

5/5/2007 11:09:00 AM

0

Hi Ben,

You could always use fetch_hasch method instead of fetch. This will
fetch the data as a ruby Hash where each key is the column name

Below is a simple example that select all columns from USER_TABLES
but only prints out the TABLE_NAME column.

Note: The reference to the column name, in the sample TABLE_NAME has
to be in uppercase.

The OCI8 API is documented quite good see

http://ruby-oci8.rubyforge.org/e...

require 'oci8'

class Testoci

def get_data

puts "***************************"
puts "Connecting..."
puts "***************************"
connection = OCI8.new('demo', 'demo', 'XE')
puts "***************************"
puts "Fetching data"
puts "***************************"
cursor = connection.parse("SELECT * FROM USER_TABLES")
cursor.exec()
# print out only the values of the TABLE_NAME column
while res = cursor.fetch_hash()
puts res["TABLE_NAME"]
end
cursor.close
connection.logoff
end

end

ora=Testoci.new
ora.get_data


Kindly Rgds
/Ulf

On 4 maj 2007, at 21.37, Ben Edwards wrote:

> On 04/05/07, Ulf Hellström <uhellstr@mac.com> wrote:
>> Hi,
>>
>> I'm new on this mailing list. My name is Ulf , lives in Sweden and
>> been developing for Oracle for many, many years. Used to work for
>> Oracle for 10 years.
>> I've been studying and learning Ruby for aroune 2 months now and has
>> done some work with Ruby and Oracle.
>> As suggested i would defenly say go for Ruby/OCI8
>>
>> There are some good introductions on how to use Ruby with Oracle on
>> OTN (Oracle Technology Network)
>>
>> See the following links:
>>
>> http://www.oracle.com/technology/pub/articles/marx...
>> http://www.oracle.com/technology/pub/articles/tate-activeer...
>> http://www.oracle.com/technology/pub/articles/haefel-oracle...
>> http://www.oracle.com/technology/pub/articles/saternos-...
>
> Thanks for this. Have been trying Ruby/OCI8 and it seems to work.
> Only thing is when it fetches row it is referenced as an array
> (row[0], row[1]...). Is there a way of referencing the column names
> (row["username"]...).
>
> Ben
>
>> Kindly Rgds
>> /Ulf
>> Ruby/OCI8
>>
>> On 4 maj 2007, at 20.38, Brian Candler wrote:
>>
>> > On Sat, May 05, 2007 at 12:27:13AM +0900, Ben Edwards wrote:
>> >> Have had a look on rubyforge and done a little looking around
>> but not
>> >> totaly sure which ruby oracle library's I should use.
>> >>
>> >> I am connecting to a 10g database.
>> >>
>> >> Ruby9i and Ruby/OCI8 seem to be the contenders, or is there
>> >> something else.
>> >>
>> >> What would people recommend?
>> >
>> > ruby-oci8. It's been around for a long time, and it works well.
>> > It's the API
>> > used by ActiveRecord's Oracle adaptor, and it also comes with a DBD
>> > for use
>> > with ruby-dbi. I'm using it with Oracle 10g now.
>> >
>> > I've never seen or used Ruby9i though.
>> >
>>
>>
>>
>
>
> --
> Ben Edwards - Bristol, UK
> If you have a problem emailing me use
> http://www.gurtlush.org.uk/profiles...
> (email address this email is sent from may be defunct)
>


Ben Edwards

5/8/2007 8:38:00 AM

0

On 04/05/07, Brian Candler <B.Candler@pobox.com> wrote:
> On Sat, May 05, 2007 at 12:27:13AM +0900, Ben Edwards wrote:
> > Have had a look on rubyforge and done a little looking around but not
> > totaly sure which ruby oracle library's I should use.
> >
> > I am connecting to a 10g database.
> >
> > Ruby9i and Ruby/OCI8 seem to be the contenders, or is there something else.
> >
> > What would people recommend?
>
> ruby-oci8. It's been around for a long time, and it works well. It's the API
> used by ActiveRecord's Oracle adaptor, and it also comes with a DBD for use
> with ruby-dbi. I'm using it with Oracle 10g now.

ruby-dbi seems like a good idea but its Beta and there hasn't been a
release for over a year. Don't think the folks here will trust it in
a production environment.

Ben

> I've never seen or used Ruby9i though.
>
>


--
Ben Edwards - Bristol, UK
If you have a problem emailing me use
http://www.gurtlush.org.uk/profiles...
(email address this email is sent from may be defunct)

Ben Edwards

5/8/2007 9:04:00 AM

0

On 05/05/07, Ulf Hellström <uhellstr@mac.com> wrote:
> Hi Ben,
>
> You could always use fetch_hasch method instead of fetch. This will
> fetch the data as a ruby Hash where each key is the column name
>
> Below is a simple example that select all columns from USER_TABLES
> but only prints out the TABLE_NAME column.
>
> Note: The reference to the column name, in the sample TABLE_NAME has
> to be in uppercase.
>
> The OCI8 API is documented quite good see
>
> http://ruby-oci8.rubyforge.org/e...
>
> require 'oci8'
>
> class Testoci
>
> def get_data
>
> puts "***************************"
> puts "Connecting..."
> puts "***************************"
> connection = OCI8.new('demo', 'demo', 'XE')
> puts "***************************"
> puts "Fetching data"
> puts "***************************"
> cursor = connection.parse("SELECT * FROM USER_TABLES")
> cursor.exec()
> # print out only the values of the TABLE_NAME column
> while res = cursor.fetch_hash()
> puts res["TABLE_NAME"]
> end
> cursor.close
> connection.logoff
> end
>
> end
>
> ora=Testoci.new
> ora.get_data

Thanks, just the ticket.

Shame fetch_hash is not an iterator but think I am going to write a
wrapper to make it easier to switch librarys/databases.

Ben

> Kindly Rgds
> /Ulf
>
> On 4 maj 2007, at 21.37, Ben Edwards wrote:
>
> > On 04/05/07, Ulf Hellström <uhellstr@mac.com> wrote:
> >> Hi,
> >>
> >> I'm new on this mailing list. My name is Ulf , lives in Sweden and
> >> been developing for Oracle for many, many years. Used to work for
> >> Oracle for 10 years.
> >> I've been studying and learning Ruby for aroune 2 months now and has
> >> done some work with Ruby and Oracle.
> >> As suggested i would defenly say go for Ruby/OCI8
> >>
> >> There are some good introductions on how to use Ruby with Oracle on
> >> OTN (Oracle Technology Network)
> >>
> >> See the following links:
> >>
> >> http://www.oracle.com/technology/pub/articles/marx...
> >> http://www.oracle.com/technology/pub/articles/tate-activeer...
> >> http://www.oracle.com/technology/pub/articles/haefel-oracle...
> >> http://www.oracle.com/technology/pub/articles/saternos-...
> >
> > Thanks for this. Have been trying Ruby/OCI8 and it seems to work.
> > Only thing is when it fetches row it is referenced as an array
> > (row[0], row[1]...). Is there a way of referencing the column names
> > (row["username"]...).
> >
> > Ben
> >
> >> Kindly Rgds
> >> /Ulf
> >> Ruby/OCI8
> >>
> >> On 4 maj 2007, at 20.38, Brian Candler wrote:
> >>
> >> > On Sat, May 05, 2007 at 12:27:13AM +0900, Ben Edwards wrote:
> >> >> Have had a look on rubyforge and done a little looking around
> >> but not
> >> >> totaly sure which ruby oracle library's I should use.
> >> >>
> >> >> I am connecting to a 10g database.
> >> >>
> >> >> Ruby9i and Ruby/OCI8 seem to be the contenders, or is there
> >> >> something else.
> >> >>
> >> >> What would people recommend?
> >> >
> >> > ruby-oci8. It's been around for a long time, and it works well.
> >> > It's the API
> >> > used by ActiveRecord's Oracle adaptor, and it also comes with a DBD
> >> > for use
> >> > with ruby-dbi. I'm using it with Oracle 10g now.
> >> >
> >> > I've never seen or used Ruby9i though.
> >> >
> >>
> >>
> >>
> >
> >
> > --
> > Ben Edwards - Bristol, UK
> > If you have a problem emailing me use
> > http://www.gurtlush.org.uk/profiles...
> > (email address this email is sent from may be defunct)
> >
>
>
>


--
Ben Edwards - Bristol, UK
If you have a problem emailing me use
http://www.gurtlush.org.uk/profiles...
(email address this email is sent from may be defunct)

Brian Candler

5/8/2007 12:28:00 PM

0

On Tue, May 08, 2007 at 05:38:27PM +0900, Ben Edwards wrote:
> On 04/05/07, Brian Candler <B.Candler@pobox.com> wrote:
> >On Sat, May 05, 2007 at 12:27:13AM +0900, Ben Edwards wrote:
> >> Have had a look on rubyforge and done a little looking around but not
> >> totaly sure which ruby oracle library's I should use.
> >>
> >> I am connecting to a 10g database.
> >>
> >> Ruby9i and Ruby/OCI8 seem to be the contenders, or is there something
> >else.
> >>
> >> What would people recommend?
> >
> >ruby-oci8. It's been around for a long time, and it works well. It's the
> >API
> >used by ActiveRecord's Oracle adaptor, and it also comes with a DBD for use
> >with ruby-dbi. I'm using it with Oracle 10g now.
>
> ruby-dbi seems like a good idea but its Beta and there hasn't been a
> release for over a year. Don't think the folks here will trust it in
> a production environment.

The last release was August 2006, and it has had 11,870 downloads since
then.

I used it (with Oracle) in a large project at a previous employer about 4
years ago, which is still running strong. Before ActiveRecord came along,
this was probably the most widely used database interface from Ruby. I
wouldn't worry about the "beta" label.

OTOH, if you're writing code which *only* ever needs to talk to Oracle, then
you may as well cut out the middle man.

Regards,

Brian.

Bertram Scharpf

5/8/2007 1:58:00 PM

0

Hi Ben,

Am Samstag, 05. Mai 2007, 00:27:13 +0900 schrieb Ben Edwards:
> Have had a look on rubyforge and done a little looking around but not
> totaly sure which ruby oracle library's I should use.
>
> I am connecting to a 10g database.
>
> Ruby9i and Ruby/OCI8 seem to be the contenders, or is there something else.
>
> What would people recommend?

I managed to compile Ruby9i 16 months ago. I sucessfully
connected to Oracle 8 and 9 databases. The thread started
with message id 175798.

I remember I was quite happy with it. Good luck!

Bertram


--
Bertram Scharpf
Stuttgart, Deutschland/Germany
http://www.bertram-...