Hi List,
I used to access a Paradox database using RODBC, but since last week I
am not able anymore to fetch any table which has a name longer than 11
or 12 characters.
Here is the the pattern of my code, nothing spectacular:
library(RODBC)
channel2<-odbcDriverConnect('DSN=xxx')
#table names with up to 11 characters still work
sqlFetch(channel2, 'abcdefghijk')
#table names with 13 or more characters do not
sqlFetch(channel2, 'abcdefghijklm')
Fehler in odbcTableExists(channel, sqtable) :
?abcdefghijklm?: table not found on channel
I do not have any tables with 12 character names, to check where exactly
the borderline is. Of course, the table ?abcdefghijklm? exist on the
channel, even if I feed it directly t osqlFetch via
sqlFetch(channel2, sqlTables(channel2)$TABLE_NAME[x])
I think it has to do with a recent update.packages(), i.e. with an
update of RODBC, but I do not know how to use an old RODBC version to
test this. Any suggestions, for example how to rre-install an old package?
Thanks in advance for any help,
Stefan
Stefan Uhmann
2009-Sep-15 09:39 UTC
[R] RODBC does not like table names >11/12 characters [sqlFetch vs. sqlQuery]
Just in case sb. has the same problem, using sqlQuery instead of sqlFetch solved the problem for me with RODBC 1.3-0. Seems as the implementation of sqlFetch does something bad to long table names - just a guess. Stefan Stefan Uhmann schrieb, Am 14.08.2009 14:12:> Hi List, > > I used to access a Paradox database using RODBC, but since last week I > am not able anymore to fetch any table which has a name longer than 11 > or 12 characters. > > Here is the the pattern of my code, nothing spectacular: > > library(RODBC) > channel2<-odbcDriverConnect('DSN=xxx') > #table names with up to 11 characters still work > sqlFetch(channel2, 'abcdefghijk') > #table names with 13 or more characters do not > sqlFetch(channel2, 'abcdefghijklm') > Fehler in odbcTableExists(channel, sqtable) : > ?abcdefghijklm?: table not found on channel > > I do not have any tables with 12 character names, to check where exactly > the borderline is. Of course, the table ?abcdefghijklm? exist on the > channel, even if I feed it directly t osqlFetch via > > sqlFetch(channel2, sqlTables(channel2)$TABLE_NAME[x]) > > I think it has to do with a recent update.packages(), i.e. with an > update of RODBC, but I do not know how to use an old RODBC version to > test this. Any suggestions, for example how to rre-install an old package? > > Thanks in advance for any help, > Stefan