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%”
使用Rodbc
调用上述函数,并在通配符搜索中使用参数化查询:
# 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"