RTVS:当作为 SQL 服务器存储过程执行时,Visual Studio 无法识别 R 包
RTVS: Visual Studio does not recognize R packages, when executing as a SQL Server stored procedure
我试图创建一个包含 R 代码的 SQL 服务器存储过程。我使用的是 RTVS -- R Tools for Microsoft Visual Studio 2015。
问题是 Visual Studio 无法识别我安装的 R 包,"Base R" 除外。例如,'dplyr',我在执行程序时得到这个错误信息:
A 'R' script error occurred during execution of 'sp_execute_external_script'
...
An external script error occurred:
Error in library(dplyr) : there is no package called 'dplyr'
Calls: source -> withVisible -> eval -> eval -> library ...
但我很确定 'dplyr' 已经安装并且工作正常。为了以防万一,我首先这样做了:
EXEC sp_execute_external_script @language = N'R',
@script = N' print(normalizePath(R.home())); print(.libPaths());';
并找到了 R 包所在的位置。然后我手动重新安装了 'dplyr' 包:
lib.SQL <- "C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\library"
install.packages("dplyr", lib = lib.SQL)
然后我重启VS,用R重新发布这个SQL服务器存储过程,执行它,得到同样的错误。
事实上,我可以在 Visual Studio 中手动 运行 具有 'dplyr' 功能的 R 代码,并让它与 SQL 服务器数据库交互,一切正常。我只是不能将整个事情发布为存储过程然后执行它。
我到处搜索,到目前为止没有找到解决方案。任何帮助将不胜感激。
我实际上通过在每台服务器上使用命令行提示符重新安装 R 包解决了这个问题。只想post放在这里让其他人看到。
我试图创建一个包含 R 代码的 SQL 服务器存储过程。我使用的是 RTVS -- R Tools for Microsoft Visual Studio 2015。
问题是 Visual Studio 无法识别我安装的 R 包,"Base R" 除外。例如,'dplyr',我在执行程序时得到这个错误信息:
A 'R' script error occurred during execution of 'sp_execute_external_script' ...
An external script error occurred:
Error in library(dplyr) : there is no package called 'dplyr'
Calls: source -> withVisible -> eval -> eval -> library ...
但我很确定 'dplyr' 已经安装并且工作正常。为了以防万一,我首先这样做了:
EXEC sp_execute_external_script @language = N'R',
@script = N' print(normalizePath(R.home())); print(.libPaths());';
并找到了 R 包所在的位置。然后我手动重新安装了 'dplyr' 包:
lib.SQL <- "C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\library"
install.packages("dplyr", lib = lib.SQL)
然后我重启VS,用R重新发布这个SQL服务器存储过程,执行它,得到同样的错误。
事实上,我可以在 Visual Studio 中手动 运行 具有 'dplyr' 功能的 R 代码,并让它与 SQL 服务器数据库交互,一切正常。我只是不能将整个事情发布为存储过程然后执行它。
我到处搜索,到目前为止没有找到解决方案。任何帮助将不胜感激。
我实际上通过在每台服务器上使用命令行提示符重新安装 R 包解决了这个问题。只想post放在这里让其他人看到。