函数 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')
看起来像一个不区分大小写的问题,当我将数据库与 public 之外的其他模式一起使用并且表名包含大写字母时,这会产生问题。
最佳答案
我找到了如下解决方案:在 ''
""
tbl(con, '"OCLOC"')
关于r - dbplyr::in_schema 区分大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45226603/