R 如何按名称在ODBC连接中查找表的架构?

R 如何按名称在ODBC连接中查找表的架构?,r,sql-server,odbc,rodbc,r-dbi,R,Sql Server,Odbc,Rodbc,R Dbi,我正在使用odbc包连接到MS SQL Server con <- dbConnect(odbc::odbc(), Driver = "ODBC Driver 13 for SQL Server", Server = "server", Database = "database", UID = "user",

我正在使用
odbc
包连接到MS SQL Server

con <- dbConnect(odbc::odbc(),
                 Driver   = "ODBC Driver 13 for SQL Server",
                 Server   = "server",
                 Database = "database",
                 UID      = "user",
                 PWD      = "pass",
                 Port     = 1111)

con如果您的用户有足够的权限,请考虑使用内置的
INFORMATION\u SCHEMA
元数据表运行带有
LIKE
搜索的SQL查询

选择架构名称
来自信息\u SCHEMA.SCHEMATA
其中架构名称类似于“%some string%”
使用R
odbc
调用上述函数,并在通配符搜索中使用参数化查询:

# PREPARED STATEMENT
strSQL <- paste("SELECT SCHEMA_NAME" ,                
                "FROM INFORMATION_SCHEMA.SCHEMATA",
                "WHERE SCHEMA_NAME LIKE ?SEARCH")

# SAFELY INTERPOLATED QUERY
query <- sqlInterpolate(conn, strSQL, SEARCH = '%some string%')

# DATA FRAME BUILD FROM RESULTSET
schema_names_df <- dbGetQuery(conn, query)
#准备好的声明

strSQL我找到了一个使用RODBC包的解决方案:

library('RODBC')
# First connect to the DB
dbconn <- odbcDriverConnect("driver = {ODBC Driver xx for SQL Server};
                            server = server;
                            database = database;
                            uid = username;
                            pwd = password")
# Now fetch the DB tables
sqlTables(dbconn)

伟大的东西;这项工作的要求是什么?(在别处读到一些链表是专有的,没有索引,想知道这在这里是否可行……或者它是否取决于索引/一些模式/标准/特定的SQL类型(查看使用ODBC的连接)谢谢
names(sqlTables(dbconn)
[1] "TABLE_CAT"   "TABLE_SCHEM" "TABLE_NAME"  "TABLE_TYPE"  "REMARKS"