dbplyr :: in_schema区分大小写

时间:2017-07-20 23:14:46

标签: r postgresql dplyr dbplyr

函数dbplyr :: in_schema()无法使用大写字母连接到表。

当我在PostgreSQL中创建一个表时。

CREATE TABLE public."OCLOC"
(
  cod_ocloc double precision NOT NULL,
  lab_ocloc character varying(255),
  CONSTRAINT pk_ocloc PRIMARY KEY (cod_ocloc)
);

INSERT INTO public."OCLOC"(
            cod_ocloc, lab_ocloc)
    VALUES (1, 'example');

然后我尝试使用R:

中的in_schema连接到表
 con <- DBI::dbConnect(RPostgreSQL::PostgreSQL(), 
                  dbname = 'dbname', 
                  user = 'user', 
                  host = 'host', 
                  password = 'password')

 tbl(con, dbplyr::in_schema('public','OCLOC'))

警告以下错误

Error in postgresqlExecStatement(conn, statement, ...) : 
  RS-DBI driver: (could not Retrieve the result : ERROR:  no existe la relación «public.ocloc»
LINE 1: SELECT * FROM public.OCLOC AS "zzz3" WHERE 0=1
                  ^
)

但是当我尝试没有in_schema连接时:

tbl(con, 'OCLOC')

看起来像一个不区分大小写的问题,当我将数据库与除公共之外的其他模式一起使用并且有大写字母的表名时,这会产生问题。

1 个答案:

答案 0 :(得分:0)

我找到的解决方案如下:在""

中添加''
tbl(con, '"OCLOC"')