Thread: Sqldf - error message
<p><font face="Arial" size="2">Hi All!</font><p><font face="Arial" size="2">I just discovered sqldf and im very enthousiastic,as I am a big fan of R and I often get frustrated using Access for datamanagement.</font><p><font face="Arial"size="2">I tried running some queries from Access in R, and it works very well. However, I have problems withsome queries.</font><p><font face="Arial" size="2">If I run this SQL query:</font><p><font face="Arial" size="2">>sqldf("SELECT</font><br /><font face="Arial" size="2">+ dbo_tbl_Terrein.RingCentraleNaam,</font><br /><fontface="Arial" size="2">+ dbo_tbl_Broedsels.BroedselID</font><br /><font face="Arial" size="2">+ FROM ((dbo_tbl_BroedselLocatie</font><br/><font face="Arial" size="2">+ INNER JOIN dbo_tbl_Broedsels ON dbo_tbl_BroedselLocatie.BroedselID= dbo_tbl_Broedsels.BroedselID)</font><br /><font face="Arial" size="2">+ INNER JOIN dbo_tbl_NestkastenON dbo_tbl_BroedselLocatie.NestkastID = dbo_tbl_Nestkasten.NestkastID)</font><br /><font face="Arial" size="2">+INNER JOIN dbo_tbl_Terrein ON dbo_tbl_Nestkasten.TerreinNummer = dbo_tbl_Terrein.TerreinNummer</font><br /><fontface="Arial" size="2">+ WHERE (((dbo_tbl_Terrein.RingCentraleNaam)='Oosterhout a/d Waal'));")</font><p><font face="Arial"size="2">I get the following message:</font><p><font face="Arial" size="2">Error in sqliteExecStatement(con,statement, bind.data) : </font><br /><font face="Arial" size="2"> RS-DBI driver: (error in statement:no such column: dbo_tbl_Broedsels.BroedselID)</font><p><font face="Arial" size="2">( I also tried removing the'dbo_tbl_' part of the dataframe names, but still the same problem occurred)</font><br /><br /><p><font face="Arial"size="2">Now ofcoarse I looked on google, because I was sure someone would have had the same problem.. And yes,I found this website...</font><p><a href="http://code.google.com/p/sqldf/"><u><font color="#0000FF" face="Arial" size="2">http://code.google.com/p/sqldf/</font></u></a><br/><p><font face="Arial" size="2">They say: </font><br /><span lang="nl"><fontcolor="#0000FF" face="Times New Roman">This happens when you try to use variable with a dot in it (as dotshave special meaning to SQL) or if you try to use SQL92 reserved keywords. SQLite/RSQLite replaces dots with underscoresand changes keywords words so that they can be used. The keywords in question can be found by entering the followingat the R command line: </font></span><p><span lang="nl"><font color="#0000FF" face="Courier New" size="2">.SQL92Keywords</font></span><p><spanlang="nl"><font face="Courier New" size="2">In this list of keywords, i cannotfind any word that is close to the error… So, i was wondering if someone knows how to solve it. preferably i do notwant to change all variable names, as these names come from the 'big main database' of the institute.</font></span><br/><p><span lang="nl"><font face="Courier New" size="2">The site also says that SQLite/RSQLitecan fix the problem… but then when i look in their help, i cannot see how i can easily use those commands…</font></span><p><spanlang="nl"><font face="Courier New" size="2">Anyone?</font></span><br /><p><span lang="en-us"><fontface="Arial" size="2">Kind regards,</font></span><p><span lang="en-us"><font face="Arial" size="2">Lucte Marvelde</font></span><br /><span lang="en-us"><font face="Arial" size="2">New member :)</font></span><br/><br /><br /><br />
"Marvelde, Luc te" <L.teMarvelde@nioo.knaw.nl> writes: > If I run this SQL query: >> sqldf("SELECT > + dbo_tbl_Terrein.RingCentraleNaam, > + dbo_tbl_Broedsels.BroedselID > + FROM ((dbo_tbl_BroedselLocatie > + INNER JOIN dbo_tbl_Broedsels ON dbo_tbl_BroedselLocatie.BroedselID = > dbo_tbl_Broedsels.BroedselID) > + INNER JOIN dbo_tbl_Nestkasten ON dbo_tbl_BroedselLocatie.NestkastID = > dbo_tbl_Nestkasten.NestkastID) > + INNER JOIN dbo_tbl_Terrein ON dbo_tbl_Nestkasten.TerreinNummer = > dbo_tbl_Terrein.TerreinNummer > + WHERE (((dbo_tbl_Terrein.RingCentraleNaam)='Oosterhout a/d Waal'));") > I get the following message: > Error in sqliteExecStatement(con, statement, bind.data) : > RS-DBI driver: (error in statement: no such column: > dbo_tbl_Broedsels.BroedselID) It looks to me like sqldf is unaware of the rules about identifier case-folding in Postgres. That column would come back named "broedselid", but it's probably looking for "BroedselID". Or possibly it's expecting the qualifier "dbo_tbl_Broedsels." to be included in the returned column name. Either way, you need to bug sqldf's authors to fix it. regards, tom lane
2009/11/20 Tom Lane <tgl@sss.pgh.pa.us>: > "Marvelde, Luc te" <L.teMarvelde@nioo.knaw.nl> writes: >> If I run this SQL query: > >>> sqldf("SELECT >> + dbo_tbl_Terrein.RingCentraleNaam, >> + dbo_tbl_Broedsels.BroedselID >> + FROM ((dbo_tbl_BroedselLocatie >> + INNER JOIN dbo_tbl_Broedsels ON dbo_tbl_BroedselLocatie.BroedselID = >> dbo_tbl_Broedsels.BroedselID) >> + INNER JOIN dbo_tbl_Nestkasten ON dbo_tbl_BroedselLocatie.NestkastID = >> dbo_tbl_Nestkasten.NestkastID) >> + INNER JOIN dbo_tbl_Terrein ON dbo_tbl_Nestkasten.TerreinNummer = >> dbo_tbl_Terrein.TerreinNummer >> + WHERE (((dbo_tbl_Terrein.RingCentraleNaam)='Oosterhout a/d Waal'));") > >> I get the following message: > >> Error in sqliteExecStatement(con, statement, bind.data) : >> RS-DBI driver: (error in statement: no such column: >> dbo_tbl_Broedsels.BroedselID) > > It looks to me like sqldf is unaware of the rules about identifier > case-folding in Postgres. That column would come back named > "broedselid", but it's probably looking for "BroedselID". > Or possibly it's expecting the qualifier "dbo_tbl_Broedsels." > to be included in the returned column name. Either way, you > need to bug sqldf's authors to fix it. > is it Postgres? I see "Error in sqliteExecStatement" regards Pavel Stehule > regards, tom lane > > -- > Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-sql >
Hello 2009/11/20 Marvelde, Luc te <L.teMarvelde@nioo.knaw.nl>: > Hi All! > > I just discovered sqldf and im very enthousiastic, as I am a big fan of R > and I often get frustrated using Access for datamanagement. > > I tried running some queries from Access in R, and it works very well. > However, I have problems with some queries. > > If I run this SQL query: > >> sqldf("SELECT > + dbo_tbl_Terrein.RingCentraleNaam, > + dbo_tbl_Broedsels.BroedselID > + FROM ((dbo_tbl_BroedselLocatie > + INNER JOIN dbo_tbl_Broedsels ON dbo_tbl_BroedselLocatie.BroedselID = > dbo_tbl_Broedsels.BroedselID) > + INNER JOIN dbo_tbl_Nestkasten ON dbo_tbl_BroedselLocatie.NestkastID = > dbo_tbl_Nestkasten.NestkastID) > + INNER JOIN dbo_tbl_Terrein ON dbo_tbl_Nestkasten.TerreinNummer = > dbo_tbl_Terrein.TerreinNummer > + WHERE (((dbo_tbl_Terrein.RingCentraleNaam)='Oosterhout a/d Waal'));") > > I get the following message: > > Error in sqliteExecStatement(con, statement, bind.data) : > RS-DBI driver: (error in statement: no such column: > dbo_tbl_Broedsels.BroedselID) > > ( I also tried removing the 'dbo_tbl_' part of the dataframe names, but > still the same problem occurred) I thing, you have a problem with data. Probably some creating script was broken or some similar. The message is clean. Your database has not column BroedselID. Recheck your query, please. Im not sure - maybe SQLite identifiers are case sensitive. Maybe are defined as case sensitive. Regards Pavel Stehule > > Now ofcoarse I looked on google, because I was sure someone would have had > the same problem.. And yes, I found this website... > > http://code.google.com/p/sqldf/ > > They say: > This happens when you try to use variable with a dot in it (as dots have > special meaning to SQL) or if you try to use SQL92 reserved keywords. > SQLite/RSQLite replaces dots with underscores and changes keywords words so > that they can be used. The keywords in question can be found by entering the > following at the R command line: > > .SQL92Keywords > > In this list of keywords, i cannot find any word that is close to the error… > So, i was wondering if someone knows how to solve it. preferably i do not > want to change all variable names, as these names come from the 'big main > database' of the institute. > > The site also says that SQLite/RSQLite can fix the problem… but then when i > look in their help, i cannot see how i can easily use those commands… > > Anyone? > > Kind regards, > > Luc te Marvelde > New member :) > > > >
2009/11/20 Pavel Stehule <pavel.stehule@gmail.com>: > Hello > > 2009/11/20 Marvelde, Luc te <L.teMarvelde@nioo.knaw.nl>: >> Hi All! >> >> I just discovered sqldf and im very enthousiastic, as I am a big fan of R >> and I often get frustrated using Access for datamanagement. >> >> I tried running some queries from Access in R, and it works very well. >> However, I have problems with some queries. >> >> If I run this SQL query: >> >>> sqldf("SELECT >> + dbo_tbl_Terrein.RingCentraleNaam, >> + dbo_tbl_Broedsels.BroedselID >> + FROM ((dbo_tbl_BroedselLocatie >> + INNER JOIN dbo_tbl_Broedsels ON dbo_tbl_BroedselLocatie.BroedselID = >> dbo_tbl_Broedsels.BroedselID) >> + INNER JOIN dbo_tbl_Nestkasten ON dbo_tbl_BroedselLocatie.NestkastID = >> dbo_tbl_Nestkasten.NestkastID) >> + INNER JOIN dbo_tbl_Terrein ON dbo_tbl_Nestkasten.TerreinNummer = >> dbo_tbl_Terrein.TerreinNummer >> + WHERE (((dbo_tbl_Terrein.RingCentraleNaam)='Oosterhout a/d Waal'));") >> p.s. Your style is strange. Don't use useless parentheses SELECT dbo_tbl_Terrein.RingCentraleNaam, dbo_tbl_Broedsels.BroedselID FROM dbo_tbl_BroedselLocatie INNER JOIN dbo_tbl_Broedsels ON dbo_tbl_BroedselLocatie.BroedselID = dbo_tbl_Broedsels.BroedselID INNER JOIN dbo_tbl_Nestkasten ON dbo_tbl_BroedselLocatie.NestkastID= dbo_tbl_Nestkasten.NestkastID INNER JOIN dbo_tbl_Terrein ON dbo_tbl_Nestkasten.TerreinNummer=dbo_tbl_Terrein.TerreinNummer WHERE dbo_tbl_Terrein.RingCentraleNaam ='Oosterhout a/d Waal' Query is same and little bit more readable. >> I get the following message: >> >> Error in sqliteExecStatement(con, statement, bind.data) : >> RS-DBI driver: (error in statement: no such column: >> dbo_tbl_Broedsels.BroedselID) >> >> ( I also tried removing the 'dbo_tbl_' part of the dataframe names, but >> still the same problem occurred) > > I thing, you have a problem with data. Probably some creating script > was broken or some similar. The message is clean. Your database has > not column BroedselID. Recheck your query, please. Im not sure - maybe > SQLite identifiers are case sensitive. Maybe are defined as case > sensitive. > > Regards > Pavel Stehule > >> >> Now ofcoarse I looked on google, because I was sure someone would have had >> the same problem.. And yes, I found this website... >> >> http://code.google.com/p/sqldf/ >> >> They say: >> This happens when you try to use variable with a dot in it (as dots have >> special meaning to SQL) or if you try to use SQL92 reserved keywords. >> SQLite/RSQLite replaces dots with underscores and changes keywords words so >> that they can be used. The keywords in question can be found by entering the >> following at the R command line: >> >> .SQL92Keywords >> >> In this list of keywords, i cannot find any word that is close to the error… >> So, i was wondering if someone knows how to solve it. preferably i do not >> want to change all variable names, as these names come from the 'big main >> database' of the institute. >> >> The site also says that SQLite/RSQLite can fix the problem… but then when i >> look in their help, i cannot see how i can easily use those commands… >> >> Anyone? >> >> Kind regards, >> >> Luc te Marvelde >> New member :) >> >> >> >> >
Nothing is wrong with the data... Everything is there in the dataframe. All the names are case sensitive, but the way itis spelled is correct.... So that cant be the problem Luc -----Original Message----- From: Pavel Stehule [mailto:pavel.stehule@gmail.com] Sent: vrijdag 20 november 2009 15:38 To: Marvelde, Luc te Cc: pgsql-sql@postgresql.org Subject: Re: [SQL] Sqldf - error message Hello 2009/11/20 Marvelde, Luc te <L.teMarvelde@nioo.knaw.nl>: > Hi All! > > I just discovered sqldf and im very enthousiastic, as I am a big fan > of R and I often get frustrated using Access for datamanagement. > > I tried running some queries from Access in R, and it works very well. > However, I have problems with some queries. > > If I run this SQL query: > >> sqldf("SELECT > + dbo_tbl_Terrein.RingCentraleNaam, > + dbo_tbl_Broedsels.BroedselID > + FROM ((dbo_tbl_BroedselLocatie > + INNER JOIN dbo_tbl_Broedsels ON dbo_tbl_BroedselLocatie.BroedselID = > dbo_tbl_Broedsels.BroedselID) > + INNER JOIN dbo_tbl_Nestkasten ON dbo_tbl_BroedselLocatie.NestkastID > + = > dbo_tbl_Nestkasten.NestkastID) > + INNER JOIN dbo_tbl_Terrein ON dbo_tbl_Nestkasten.TerreinNummer = > dbo_tbl_Terrein.TerreinNummer > + WHERE (((dbo_tbl_Terrein.RingCentraleNaam)='Oosterhout a/d > + Waal'));") > > I get the following message: > > Error in sqliteExecStatement(con, statement, bind.data) : > RS-DBI driver: (error in statement: no such column: > dbo_tbl_Broedsels.BroedselID) > > ( I also tried removing the 'dbo_tbl_' part of the dataframe names, > but still the same problem occurred) I thing, you have a problem with data. Probably some creating script was broken or some similar. The message is clean. Yourdatabase has not column BroedselID. Recheck your query, please. Im not sure - maybe SQLite identifiers are case sensitive.Maybe are defined as case sensitive. Regards Pavel Stehule > > Now ofcoarse I looked on google, because I was sure someone would have > had the same problem.. And yes, I found this website... > > http://code.google.com/p/sqldf/ > > They say: > This happens when you try to use variable with a dot in it (as dots > have special meaning to SQL) or if you try to use SQL92 reserved keywords. > SQLite/RSQLite replaces dots with underscores and changes keywords > words so that they can be used. The keywords in question can be found > by entering the following at the R command line: > > .SQL92Keywords > > In this list of keywords, i cannot find any word that is close to the > error... So, i was wondering if someone knows how to solve it. > preferably i do not want to change all variable names, as these names > come from the 'big main database' of the institute. > > The site also says that SQLite/RSQLite can fix the problem... but then > when i look in their help, i cannot see how i can easily use those > commands... > > Anyone? > > Kind regards, > > Luc te Marvelde > New member :) > > > >
I think you (or I) might misunderstand TL's comment. The sql is probably being sent by some late-in-the-client-side-game driver with names quoted with double-quote marks, but the database does not have the column names etc in mixed case. Can you connect directly to the postgres server (psql -h dbservername -U dbusername) to see the definition of the tables in question (\d dbtablename)? Marvelde, Luc te wrote: > Nothing is wrong with the data... Everything is there in the dataframe. All the names are case sensitive, but the way itis spelled is correct.... So that cant be the problem > > Luc > > -----Original Message----- > From: Pavel Stehule [mailto:pavel.stehule@gmail.com] > Sent: vrijdag 20 november 2009 15:38 > To: Marvelde, Luc te > Cc: pgsql-sql@postgresql.org > Subject: Re: [SQL] Sqldf - error message > > Hello > > 2009/11/20 Marvelde, Luc te <L.teMarvelde@nioo.knaw.nl>: >> Hi All! >> >> I just discovered sqldf and im very enthousiastic, as I am a big fan >> of R and I often get frustrated using Access for datamanagement. >> >> I tried running some queries from Access in R, and it works very well. >> However, I have problems with some queries. >> >> If I run this SQL query: >> >>> sqldf("SELECT >> + dbo_tbl_Terrein.RingCentraleNaam, >> + dbo_tbl_Broedsels.BroedselID >> + FROM ((dbo_tbl_BroedselLocatie >> + INNER JOIN dbo_tbl_Broedsels ON dbo_tbl_BroedselLocatie.BroedselID = >> dbo_tbl_Broedsels.BroedselID) >> + INNER JOIN dbo_tbl_Nestkasten ON dbo_tbl_BroedselLocatie.NestkastID >> + = >> dbo_tbl_Nestkasten.NestkastID) >> + INNER JOIN dbo_tbl_Terrein ON dbo_tbl_Nestkasten.TerreinNummer = >> dbo_tbl_Terrein.TerreinNummer >> + WHERE (((dbo_tbl_Terrein.RingCentraleNaam)='Oosterhout a/d >> + Waal'));") >> >> I get the following message: >> >> Error in sqliteExecStatement(con, statement, bind.data) : >> RS-DBI driver: (error in statement: no such column: >> dbo_tbl_Broedsels.BroedselID) >> >> ( I also tried removing the 'dbo_tbl_' part of the dataframe names, >> but still the same problem occurred) > > I thing, you have a problem with data. Probably some creating script was broken or some similar. The message is clean.Your database has not column BroedselID. Recheck your query, please. Im not sure - maybe SQLite identifiers are casesensitive. Maybe are defined as case sensitive. > > Regards > Pavel Stehule > >> Now ofcoarse I looked on google, because I was sure someone would have >> had the same problem.. And yes, I found this website... >> >> http://code.google.com/p/sqldf/ >> >> They say: >> This happens when you try to use variable with a dot in it (as dots >> have special meaning to SQL) or if you try to use SQL92 reserved keywords. >> SQLite/RSQLite replaces dots with underscores and changes keywords >> words so that they can be used. The keywords in question can be found >> by entering the following at the R command line: >> >> .SQL92Keywords >> >> In this list of keywords, i cannot find any word that is close to the >> error... So, i was wondering if someone knows how to solve it. >> preferably i do not want to change all variable names, as these names >> come from the 'big main database' of the institute. >> >> The site also says that SQLite/RSQLite can fix the problem... but then >> when i look in their help, i cannot see how i can easily use those >> commands... >> >> Anyone? >> >> Kind regards, >> >> Luc te Marvelde >> New member :) >> >> >> >> >
On Friday 20 November 2009 6:43:53 am Pavel Stehule wrote: > 2009/11/20 Tom Lane <tgl@sss.pgh.pa.us>: > > "Marvelde, Luc te" <L.teMarvelde@nioo.knaw.nl> writes: > >> If I run this SQL query: > >>> sqldf("SELECT > >> > >> + dbo_tbl_Terrein.RingCentraleNaam, > >> + dbo_tbl_Broedsels.BroedselID > >> + FROM ((dbo_tbl_BroedselLocatie > >> + INNER JOIN dbo_tbl_Broedsels ON dbo_tbl_BroedselLocatie.BroedselID = > >> dbo_tbl_Broedsels.BroedselID) > >> + INNER JOIN dbo_tbl_Nestkasten ON dbo_tbl_BroedselLocatie.NestkastID = > >> dbo_tbl_Nestkasten.NestkastID) > >> + INNER JOIN dbo_tbl_Terrein ON dbo_tbl_Nestkasten.TerreinNummer = > >> dbo_tbl_Terrein.TerreinNummer > >> + WHERE (((dbo_tbl_Terrein.RingCentraleNaam)='Oosterhout a/d Waal'));") > >> > >> I get the following message: > >> > >> Error in sqliteExecStatement(con, statement, bind.data) : > >> RS-DBI driver: (error in statement: no such column: > >> dbo_tbl_Broedsels.BroedselID) > > > > It looks to me like sqldf is unaware of the rules about identifier > > case-folding in Postgres. That column would come back named > > "broedselid", but it's probably looking for "BroedselID". > > Or possibly it's expecting the qualifier "dbo_tbl_Broedsels." > > to be included in the returned column name. Either way, you > > need to bug sqldf's authors to fix it. > > is it Postgres? I see "Error in sqliteExecStatement" It is more complicated than that see: http://code.google.com/p/sqldf/ It is a framework sqldf over a framework rsqlite over sqlite. The data frames the OP is talking about are variables that are coerced to being 'tables'. I can see no mailing list for sqldf itself. The closet I could come is https://stat.ethz.ch/mailman/listinfo/r-help which seems to have quite a few discussions on sqldf and would probably be the better place to ask this question. > > regards > Pavel Stehule > > > regards, tom lane > > > > -- > > Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org) > > To make changes to your subscription: > > http://www.postgresql.org/mailpref/pgsql-sql -- Adrian Klaver aklaver@comcast.net
Luc, You need to contact Gabor Grothendieck (cc'd) about this issue. He is the package author. I'm sure he will be happy to help. -Whit On Fri, Nov 20, 2009 at 11:23 AM, Adrian Klaver <aklaver@comcast.net> wrote: > On Friday 20 November 2009 6:43:53 am Pavel Stehule wrote: >> 2009/11/20 Tom Lane <tgl@sss.pgh.pa.us>: >> > "Marvelde, Luc te" <L.teMarvelde@nioo.knaw.nl> writes: >> >> If I run this SQL query: >> >>> sqldf("SELECT >> >> >> >> + dbo_tbl_Terrein.RingCentraleNaam, >> >> + dbo_tbl_Broedsels.BroedselID >> >> + FROM ((dbo_tbl_BroedselLocatie >> >> + INNER JOIN dbo_tbl_Broedsels ON dbo_tbl_BroedselLocatie.BroedselID = >> >> dbo_tbl_Broedsels.BroedselID) >> >> + INNER JOIN dbo_tbl_Nestkasten ON dbo_tbl_BroedselLocatie.NestkastID = >> >> dbo_tbl_Nestkasten.NestkastID) >> >> + INNER JOIN dbo_tbl_Terrein ON dbo_tbl_Nestkasten.TerreinNummer = >> >> dbo_tbl_Terrein.TerreinNummer >> >> + WHERE (((dbo_tbl_Terrein.RingCentraleNaam)='Oosterhout a/d Waal'));") >> >> >> >> I get the following message: >> >> >> >> Error in sqliteExecStatement(con, statement, bind.data) : >> >> RS-DBI driver: (error in statement: no such column: >> >> dbo_tbl_Broedsels.BroedselID) >> > >> > It looks to me like sqldf is unaware of the rules about identifier >> > case-folding in Postgres. That column would come back named >> > "broedselid", but it's probably looking for "BroedselID". >> > Or possibly it's expecting the qualifier "dbo_tbl_Broedsels." >> > to be included in the returned column name. Either way, you >> > need to bug sqldf's authors to fix it. >> >> is it Postgres? I see "Error in sqliteExecStatement" > > It is more complicated than that see: > http://code.google.com/p/sqldf/ > > It is a framework sqldf over a framework rsqlite over sqlite. The data frames > the OP is talking about are variables that are coerced to being 'tables'. I can > see no mailing list for sqldf itself. The closet I could come is > https://stat.ethz.ch/mailman/listinfo/r-help > which seems to have quite a few discussions on sqldf and would probably be the > better place to ask this question. > >> >> regards >> Pavel Stehule >> >> > regards, tom lane >> > >> > -- >> > Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org) >> > To make changes to your subscription: >> > http://www.postgresql.org/mailpref/pgsql-sql > > > > -- > Adrian Klaver > aklaver@comcast.net > > -- > Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-sql >