首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在R中访问和读取Postgres视图

如何在R中访问和读取Postgres视图
EN

Stack Overflow用户
提问于 2017-07-19 17:41:47
回答 2查看 1.8K关注 0票数 1

我正在尝试访问和读取R的Postgres数据库的表和视图。我能够使用RPostgres包使用dbListTables函数获得表,但遇到了views的问题。

因为对postgres有天真的了解,所以在R中寻找访问和阅读视图的方法。

代码语言:javascript
复制
library(RPostgres)
library(DBI)
library(dplyr)
library(sqldf)

pw<- {
"password"
}

conn <- dbConnect(RPostgres::Postgres()
             , host="host-name"
             , port='5432'
             , dbname="database-name"
             , user="username"
             , password=pw)

dbExistsTable(conn, "Test_Table")
#TRUE
dbListTables(conn)

mydf <- dbReadTable(conn, "Test_Table") # To Read the table in R

我也尝试了下面的命令,根据这个链接:https://github.com/tidyverse/dplyr/issues/1007,但没有成功。

代码语言:javascript
复制
SELECT table_name
FROM INFORMATION_SCHEMA.tables 
WHERE table_schema = ANY (current_schemas(false));  
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-19 19:20:47

似乎dbExistsTabledbListTables看不到Postgres视图。

但是您应该能够通过如下查询找到它们:

代码语言:javascript
复制
SELECT table_schema, table_name
FROM information_schema.tables
WHERE table_schema not in ('pg_catalog', 'information_schema') and table_type = 'VIEW'

一旦你知道了你正在寻找的视图的名称,dbReadTable(conn, "myview")就可以工作了。

注意:如果它仍然不能工作,请确保使用

代码语言:javascript
复制
SET search_path to myschema
票数 0
EN

Stack Overflow用户

发布于 2018-10-09 14:03:49

确保视图名称用引号括起来。

viewDataFrame<-dbGetQuery(con,'SELECT * FROM dh2."viewName"')

注意:视图名称"viewName“用引号括起来。否则它就不会起作用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45186735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档