2017-07-20 8 views
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') 

大文字小文字を区別しない問題のように見えます。これは、パブリック以外の他のスキーマでデータベースを使用しているときに大文字のテーブル名があるときに問題が発生します。次のように

+0

を追加し、私はあなたが持っている問題はin_schema 'に関連しているかどうかわからないです'> dbplyr :: in_schema( 'public'、 'OCLOC') public.OCLOC'代わりにドライバに問題はありますか?生成されたクエリを直接実行しようとしましたか? DBI :: dbGetQuery(con、 'SELECT * FROM public.OCLOC as "zzz3" WHERE 0 = 1') ' – JAD

+0

また、Oracleに接続する際の大文字と小文字の区別に関する問題もありました。最後に、 'DBI :: dbWriteTable'と' DBI :: dbReadTable'を上書きして、実行前にすべてのクエリとテーブル名を大文字に変換しました。 'dbplyr'はすばらしいですが、まったく新しく驚きに満ちていますので、半分の日を試してみて、それに続くことはできませんでした。できるだけ使用量を標準化(最小化)する方が安全です。 –

答えて

0

私は解決策を見つけた:「」内の「」

TBL(CON、「『OCLOC』」)

関連する問題