RODBC 包:如何获取“表是不是存在?”的逻辑值查询类型?
Posted
技术标签:
【中文标题】RODBC 包:如何获取“表是不是存在?”的逻辑值查询类型?【英文标题】:RODBC package: How to get a logical value for the "Does the Table Exists?" query type?RODBC 包:如何获取“表是否存在?”的逻辑值查询类型? 【发布时间】:2016-01-12 22:58:47 【问题描述】:我正在尝试将 R/Shiny/SQL 应用程序转换为使用来自 SQL Server 而不是 Oracle 的数据。原代码中有很多如下类型条件:如果表存在,则将其作为数据集,否则上传新数据。我正在从DBI/ROracle
包中寻找dbExistsTable
命令的对应项,但不幸的是odbcTableExists
只是内部RODBC
命令在R
环境中不可用。也是RODBC
包的包装器,允许使用DBI
类型命令-RODBCDBI
似乎不起作用。有任何想法吗?
下面是一些代码示例:
library(RODBC)
library(RODBCDBI)
con <- odbcDriverConnect('driver=SQL
Server;server=xx.xx.xx.xxx;database=test;uid=user;pwd=pass123')
odbcTableExists(con, "table")
错误:找不到函数“odbcTableExists”
dbExistsTable(con,"table")
(函数(类,fdef,mtable)中的错误: 无法找到签名“RODBC”、“字符”的函数“dbExistsTable”的继承方法
【问题讨论】:
你试过用:::
调用它吗,即RODBC:::odbcTableExists(con, "table")
?
感谢您的回答,我不知道这种可能性,对于许多 R 功能仍然是新手。您的建议的输出是[1] "\"table\""
。如果我故意使用不存在的表,则会出现错误消息。通过一些包装,它可以有望在 if 语句中使用。
@Benjamin 的回答可能更惯用。
【参考方案1】:
你可以使用
[Table] %in% sqlTables(conn)$TABLE_NAME
其中[Table]
是您要查找的表的字符串。
【讨论】:
以上是关于RODBC 包:如何获取“表是不是存在?”的逻辑值查询类型?的主要内容,如果未能解决你的问题,请参考以下文章