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