2015-01-12 38 views
2

我使用的Vertica的数据库表中有一个名为列:OK incident.date如何选择数据库列名在R中的一个点?

我连接到它:

install.packages("RJDBC",dep=TRUE) 
library(RJDBC) 
vDriver <- JDBC(driverClass="com.vertica.jdbc.Driver", classPath="C:/Vertica/vertica jar/vertica-jdbc-7.0.1-0.jar") 
vertica <- dbConnect(vDriver, "jdbc:vertica://127.0.0.1:5433/dir", "name", "pass") 

我可以撤出它的常规查询:

myframe = dbGetQuery(vertica, "Select * from output_servers") 

但如果我想在名称中使用点的特定列,则会出现错误。

myframe = dbGetQuery(vertica, "Select product, incident, incident.date from output_servers") 

    Error in .verify.JDBC.result(r, "Unable to retrieve JDBC result set for ", : 
    Unable to retrieve JDBC result set for Select product, incident, incident.date from output_servers ([Vertica][VJDBC](4566) ERROR: Relation "incident" does not exist) 

我试过方括号,反引号,单引号和双引号,并反斜杠周围的列名。我很确定这很简单,但是我错过了什么?谢谢!

回答

1

我发现:

myframe = dbGetQuery(vertica, "Select product, incident, \"incident.date\" from output_servers") 

显然,这是Vertica的是关心,而不是R.

+0

是。列名称中的那段时间可能会被解释为{table}。{column}。如果我在野外遇到这种情况,我会对DBA有一些强烈的话。 – bpanulla

相关问题