首页 > 解决方案 > 在 MSSQL 中使用 sp_execute_external_script 执行 R 脚本

问题描述

我正在尝试在 MSSQL 中使用 sp_execute_external_script 执行外部 R 文件:

EXECUTE sp_execute_external_script @language = N'R'
    , @script = N'
source("C:/Rscripts/script.R");';

我收到以下错误(已翻译):

External script error: 
Error in file(filename, "r", encoding = encoding) : 
  could not open connection
Calling: source -> withVisible -> eval -> eval -> source -> file
Additional warning:
In file(filename, "r", encoding = encoding) :
  Could not open file 'C:/Rscripts/script.R': Permission denied

这可以概括为文件权限错误。

我尝试了以下方法:

但没有成功。

*.R 文件包含有效的 R 脚本,可以使用 RStudio 中 SQL 查询中的脚本执行。

我们需要打开一个外部 R 文件,因为过程 sp_execute_external_script 只需要一个 varchar(max) @script 参数。

标签: sql-server

解决方案


要使用 sp_execute_external_script 从/向文件夹读取/写入,请将权限分配给“ ALL APPLICATION PACKAGES

要访问其他机器/外部资源,请检查(并禁用)几个“SQLServer 中的 AppContainers-nn”的阻止传出防火墙规则。


推荐阅读