r - 如何减少 R 中 SQL 查询的错误?
问题描述
这是我的功能
getSQL <- function(server="server name", database="database name", Uid="
user name", Pwd="password", Query){
conlink <- paste('driver={SQL Server};server=', server,';database=',database,';Uid=', Uid,
';Pwd=', Pwd,';Encrypt=True;TrustServerCertificate=False', sep="")
conn <- odbcDriverConnect(conlink)
dat <- sqlQuery(channel= conn, Query, stringsAsFactors = F)
odbcCloseAll()
return(dat)
}
当我使用调用函数时
query.cut = "SELECT [measurename]
,[OrgType]
,[year_session]
,[Star]
,[cutvalue]
,[Date]
,[File]
FROM [database name].[dbo].[DST_Merged_Cutpoint]
ORDER BY [year_session] DESC
"
getSQL(Query=query.cut)
我收到此错误:
sqlQuery(conn, Query, stringsAsFactors = F) 中的错误:
第一个参数不是开放的 RODBC 通道另外:警告消息:
1:在 odbcDriverConnect(conlink) 中:
[RODBC] 错误:状态 28000,代码 18456,消息 [Microsoft][ODBC SQL Server Driver][SQL Server] 用户“insightm8”登录失败。
2:在 odbcDriverConnect(conlink) 中:
[RODBC] 错误:状态 01S00,代码 0,消息 [Microsoft][ODBC SQL Server Driver]无效的连接字符串属性
3:在 odbcDriverConnect(conlink)
中:sqlQuery(conn,Query,stringsAsFactors = F) :
第一个参数不是开放的 RODBC 通道
我该如何解决这些错误?提前致谢
解决方案
注意不要在以下位置添加空格UID
:
服务器]用户“insightm8”登录失败。
在连接上重现此SQL Server
错误会产生相同的错误。
尝试使用paste0
而不是paste
:
conlink <- paste0('driver={SQL Server};server=', server,';database=',database,';Uid=', Uid,
';Pwd=', Pwd,';Encrypt=True;TrustServerCertificate=False', sep="")
推荐阅读
- javascript - 为什么像 `Math` 和 `JSON` 这样的东西不返回它们的键?他们有什么特别之处?
- python - “无法加载原生 TensorFlow 运行时。”
- python - 如何使用自定义 Tensorflow Lite 模型
- mysql - SQLSTATE[22003]:数值超出范围:
- javascript - 我应该如何缩短以下代码?
- google-maps - 添加多个gmap标记
- node.js - node.js 找不到模块“mongodb”
- python - Celery 注册了任务,但 beat 没有从已安装的应用程序中安排任务
- c++ - 模板类的嵌套类中的友元运算符
- javascript - 如何以角度实现模板变量?