SQL 任何地方 linux odbc SQL_HANDLE_HENV 错误
SQL Anywhere linux odbc SQL_HANDLE_HENV error
我有一个 linux 服务器 运行 RStudio,我正在尝试连接到一个 SQL Anywhere 数据库。
我已经安装并配置了驱动程序,我可以使用 iSQL 进行连接。尝试通过 RStudio 时,我不断收到此错误:
Error: nanodbc/nanodbc.cpp:983: 00000: [unixODBC][Driver Manager]Driver's SQLAllocHandle on SQL_HANDLE_HENV failed
但是,如果我直接从 /opt/bin/r/rscript 启动 R 脚本,它会连接。
尝试通过主目录中的 conda 环境连接 Python 时,同样的事情发生了。但是,如果我通过在终端中键入 "python test.py" 来启动,连接就会成功。
我在 Ubuntu 18.04 和 SQL Anywhere 17 位司机。任何想法都会得到应用。
谢谢。
我刚刚用一个非常相似的设置解决了这个问题:连接到 SQL Anywhere 数据库,当从命令行启动时,连接从 R 工作,而不是从 RStudio 工作,并给出错误:
SQLAllocHandle on SQL_HANDLE_HENV failed
关键是在 RStudio 中设置环境变量以匹配我的常规 shell 中的环境变量。就我而言,这些是 $ODBCINI
和 $LD_LIBRARY_PATH
。我按如下方式重置它们:
在shell中,运行下面获取控制台R正在使用的值
echo $ODBCINI
echo $LD_LIBRARY_PATH
在 RStudio 中,运行 Sys.getenv()
确认这些值不同。
重置变量以匹配
Sys.setenv(ODBCINI = "[path from shell]/odbc.ini")
Sys.setenv("LD_LIBRARY_PATH" = paste0(Sys.getenv("LD_LIBRARY_PATH"),":[user path from shell]"))
通过此设置,我能够从 RStudio 进行连接。
我有一个 linux 服务器 运行 RStudio,我正在尝试连接到一个 SQL Anywhere 数据库。
我已经安装并配置了驱动程序,我可以使用 iSQL 进行连接。尝试通过 RStudio 时,我不断收到此错误:
Error: nanodbc/nanodbc.cpp:983: 00000: [unixODBC][Driver Manager]Driver's SQLAllocHandle on SQL_HANDLE_HENV failed
但是,如果我直接从 /opt/bin/r/rscript 启动 R 脚本,它会连接。
尝试通过主目录中的 conda 环境连接 Python 时,同样的事情发生了。但是,如果我通过在终端中键入 "python test.py" 来启动,连接就会成功。
我在 Ubuntu 18.04 和 SQL Anywhere 17 位司机。任何想法都会得到应用。
谢谢。
我刚刚用一个非常相似的设置解决了这个问题:连接到 SQL Anywhere 数据库,当从命令行启动时,连接从 R 工作,而不是从 RStudio 工作,并给出错误:
SQLAllocHandle on SQL_HANDLE_HENV failed
关键是在 RStudio 中设置环境变量以匹配我的常规 shell 中的环境变量。就我而言,这些是 $ODBCINI
和 $LD_LIBRARY_PATH
。我按如下方式重置它们:
在shell中,运行下面获取控制台R正在使用的值
echo $ODBCINI echo $LD_LIBRARY_PATH
在 RStudio 中,运行
Sys.getenv()
确认这些值不同。重置变量以匹配
Sys.setenv(ODBCINI = "[path from shell]/odbc.ini") Sys.setenv("LD_LIBRARY_PATH" = paste0(Sys.getenv("LD_LIBRARY_PATH"),":[user path from shell]"))
通过此设置,我能够从 RStudio 进行连接。