[R] RODBC to query an Oracle table

Marc Schwartz marc_schwartz at comcast.net
Mon Jul 28 17:23:14 CEST 2008

on 07/28/2008 09:44 AM Megan J Bellamy wrote:
> Hello all,
> I am having trouble running a count function in R using RODBC to
> query a table I created in Oracle. It may very well be that my SQL
> coding is incorrect; I just started learning it. But if someone could
> point me in the right direction or tell me if I am going about this
> the correct way that would be greatly appreciated! The script I have
> right now is:
>> require(RODBC) channel<-odbcConnect("MeganXE") 
>> stbl<-sqlQuery(channel, 'select plotnum, sampyear, sptype from
>> density') sqlQuery(channel, 'select count (sampyear, plotnum,
>> sptype) from stbl where sampyear=1995 AND plotnum=1 AND sptype='S'
>> OR sptype='H')
> I get this error: unexpected symbol in "sqlQuery(channel...)"
> I would like R to return a count of how many records satisfy the
> condition of being sampled in 1995 and in plot number 1, where the
> species type is either softwood or hardwood (S or H). Any help with
> this would be great.
> Thanks in advance,
> Megan

'stbl' is a data frame in R, not a table in Oracle. Thus, when you try 
to run the subsequent query against 'stbl', you are getting an error 
message indicating that 'stbl' cannot be found in Oracle.

You can do the following in R:

nrow(subset(stbl, (sampyear == 1995) & (plotnum == 1) &
                   (sptype == "S" | sptype == "H")))

See ?subset


Marc Schwartz

More information about the R-help mailing list