如何在dbGetQuery函数中正确编写表名?

时间:2019-11-10 21:08:11

标签: sql r postgresql

我在dbGetQeury函数中指定表名时遇到问题。

命令

data1 <- dbGetQuery(con, "select * from bank_schema.capital")

效果很好。

但是命令

data1 <- dbGetQuery(con, "select * from bank_schema.135_ratios")

给出错误。

con是PostgreSQL数据库的连接对象。

请帮我找到出路。

谢谢。

2 个答案:

答案 0 :(得分:2)

默认情况下,Postgres不支持以数字开头的表名(其他RDBMS具有相同的限制)。您需要引用表名。考虑:

data1 <- dbGetQuery(con, 'select * from bank_schema."135_ratios"')

或者:

data1 <- dbGetQuery(con, "select * from bank_schema.\"135_ratios\"")

但是更好的是,将表重命名为更标准的名称(例如,不以数字开头)会更简单,例如ratios_135

答案 1 :(得分:1)

您需要使用"引用标识符:

data1 <- dbGetQuery(con, "select * from bank_schema.\"135_ratios\"")