7

函数 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')

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

4

1 回答 1

3

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

tbl(con, '"OCLOC"')
于 2018-02-04T03:34:52.353 回答