You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows环境下RStudio通过ODBC连接SAP Hana失败求助

RStudio连接SAP HANA数据库的ODBC报错排查

背景与前期准备

我最近在尝试用RStudio连接SAP HANA数据库,先后测试了RODBC、RJDBC等库,调研后确定odbc是RODBC的替代新版本,而且性能优于RJDBC。

我已经按照RStudio文档完成了Windows 64位SAP HANA Driver的安装,在RStudio里可以成功识别到HDBODBC驱动,执行以下代码验证:

library(odbc)
sort(unique(odbcListDrivers()[[1]]))

输出结果如下:

[1] "Amazon Redshift (x64)" "HDBODBC" "ODBC Driver 17 for SQL Server" "PostgreSQL ANSI(x64)" "PostgreSQL Unicode(x64)"
[6] "SQL Server"

连接报错情况

我在配置DSN时已经填写了IP和端口,但连接时出现了两种不同的错误:

1. 通过DSN连接报错

执行连接代码:

library(odbc)
con <- dbConnect(odbc(), "HAN")

得到错误信息:

Error: nanodbc/nanodbc.cpp:983: HY000: [SAP AG][LIBODBCHDB DLL][HDBODBC] General error;1033 error while parsing protocol

2. 不通过DSN直接连接报错

执行连接代码:

library(DBI)
con <- dbConnect(odbc::odbc(), driver = "HDBODBC", uid = "<user>", pwd = "<pass>", host = "<ip>", port = <port>)

得到错误信息:

Error: nanodbc/nanodbc.cpp:983: HY000: [SAP AG][LIBODBCHDB DLL][HDBODBC] General error;-10719 Connect failed (invalid SERVERNODE '')

补充排查信息

目前我通过Tableau以及RJDBC(Java驱动)可以成功连接到SAP HANA,但RJDBC的性能极差,RJDBC的连接代码如下:

jdbcDriver <- JDBC(driverClass="com.sap.db.jdbc.Driver", classPath="C:\\Program Files\\SAP\\hdbclient\\ngdbc.jar")
jdbcConnection <- dbConnect(jdbcDriver, "jdbc:sap://<ip>:<port>/?autocommit=false", "<username>", key_get("<service>", keyring = "<keyring>"))

环境版本信息

  • Windows:Microsoft Windows 10 Enterprise 10.0.18363,x64架构
  • R:R version 3.6.3 (2020-02-29),运行于x86_64-w64-mingw32平台

内容的提问来源于stack exchange,提问作者Mohamed Mostafa El-Sayyad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 09:12:56