dbplyr :: in_schema区分大小写

Die*_*ego 6 postgresql r 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');
Run Code Online (Sandbox Code Playgroud)

然后,我尝试使用R中的in_schema连接到表:

 con <- DBI::dbConnect(RPostgreSQL::PostgreSQL(), 
                  dbname = 'dbname', 
                  user = 'user', 
                  host = 'host', 
                  password = 'password')

 tbl(con, dbplyr::in_schema('public','OCLOC'))
Run Code Online (Sandbox Code Playgroud)

警告以下错误

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
                  ^
)
Run Code Online (Sandbox Code Playgroud)

但是当我尝试不使用in_schema时,连接有效:

tbl(con, 'OCLOC')
Run Code Online (Sandbox Code Playgroud)

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

Die*_*ego 3

我找到了解决方案如下:""在里面添加''

tbl(con, '"OCLOC"')
Run Code Online (Sandbox Code Playgroud)