首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编写使用dbplyr调用tbl()的包函数

编写使用dbplyr调用tbl()的包函数
EN

Stack Overflow用户
提问于 2022-03-01 17:04:05
回答 1查看 157关注 0票数 0

我有一个简单的函数,它应该使用DBI::dbConnect()连接来获取一个表。对tbl()的调用在交互会话中运行良好,我遇到了问题。

我的职能:

代码语言:javascript
复制
a2_db_read <- function(con, tbl_name, schema = "dbo"){
  if(schema == "dbo"){
    dplyr::tbl(con, tbl_name)
  }
  else{
    dplyr::tbl(con, dbplyr::in_schema(schema, tbl_name))
  }
}

如果我打电话给dplyr::tbl(),我会得到:

代码语言:javascript
复制
Error in UseMethod("tbl") : 
  no applicable method for 'tbl' applied to an object of class "Microsoft SQL Server"

如果我打电话给dbplyr::tbl(),我会得到:

代码语言:javascript
复制
a2_db_read(a2_con_uat, "AVL Data")
Error: 'tbl' is not an exported object from 'namespace:dbplyr'

我怎样才能让这个电话在一个函数中成功?我的套餐进口是:

代码语言:javascript
复制
Imports: 
    DBI,
    dbplyr,
    dplyr,
    ggplot2,
    odbc
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-01 18:05:27

我让它与dplyr::tbl()一起工作,正确的用法。

问题是,我的连接是作为一个对象存储在一个包中,而实际上,每次我重新启动R时都需要建立连接。

在新的R环境中,存储的陈旧连接导致错误:

UseMethod错误(“tbl”):不适用于"Microsoft“类对象的”tbl“方法

当我恢复连接的时候,它就起作用了。

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

https://stackoverflow.com/questions/71312119

复制
相关文章

相似问题

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