在通道正则表达式中找不到 sqlfetch 表

Posted

技术标签:

【中文标题】在通道正则表达式中找不到 sqlfetch 表【英文标题】:sqlfetch table not found in channel regular expression 【发布时间】:2019-02-25 16:09:10 【问题描述】:

我正在尝试获取多个 Access 文件,其中我需要的表每次都具有不同的名称。

例子:

在Access文件1中,表名是“base1” 在 Access 文件 2 中,表名为“base2” 等

我尝试了以下函数,该函数稍后将在 map 函数中用于从我的目录中获取所有 Access 文件:

fetch <- function (x)  y <- odbcConnectAccess2007(x) sqlFetch(y,"^base.$") odbcCloseAll() 

R 似乎不喜欢 sqlfetch 上的正则表达式,因为我收到以下消息:

odbcTableExists(channel, sqtable) 中的错误:“^base.$”:在通道上找不到表

请注意,当我使用“base1”作为sqltable 而不是“^base.$”时,这非常有效

你能帮帮我吗?

【问题讨论】:

【参考方案1】:

我已经找到了解决这个问题的方法:

    fetch <- function (x) 
      y <- odbcConnectAccess2007(x)
      find_table_name <-
        str_extract(sqlTables(y)$TABLE_NAME, "^(base.*)$") %>%
        na.omit
      table_result <- sqlFetch(y, find_table_name[1])
      return(table_result)
      odbcCloseAll()


【讨论】:

以上是关于在通道正则表达式中找不到 sqlfetch 表的主要内容,如果未能解决你的问题,请参考以下文章

如何在正则表达式组中返回 None? [复制]

正则表达式创建 AWS Athena 表 (RegexSerDe)

linux正则表达式

只需要字母数字(没有纯数字或字母)并且只限制10个字符的正则表达式?

MySql-正则表达式

在 react-native 项目中找不到 metro-config node_modules