3
関数dbplyr :: in_schema()は大文字の表に接続できません。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')
大文字小文字を区別しない問題のように見えます。これは、パブリック以外の他のスキーマでデータベースを使用しているときに大文字のテーブル名があるときに問題が発生します。次のように
を追加し、私はあなたが持っている問題はin_schema 'に関連しているかどうかわからないです'> dbplyr :: in_schema( 'public'、 'OCLOC') public.OCLOC'代わりにドライバに問題はありますか?生成されたクエリを直接実行しようとしましたか? DBI :: dbGetQuery(con、 'SELECT * FROM public.OCLOC as "zzz3" WHERE 0 = 1') ' –
JAD
また、Oracleに接続する際の大文字と小文字の区別に関する問題もありました。最後に、 'DBI :: dbWriteTable'と' DBI :: dbReadTable'を上書きして、実行前にすべてのクエリとテーブル名を大文字に変換しました。 'dbplyr'はすばらしいですが、まったく新しく驚きに満ちていますので、半分の日を試してみて、それに続くことはできませんでした。できるだけ使用量を標準化(最小化)する方が安全です。 –