在R中执行SQL Server存储过程,但不获取CSV文件

在R中执行SQL Server存储过程,但不获取CSV文件,r,sql-server,rodbc,R,Sql Server,Rodbc,我试图在R中执行SQL Server存储过程。SQL Server过程的结果应该用于R代码的其余部分。通常,SQL Server过程的结果是在指定文件夹中保存一些CSV文件 在R代码中,我想: 在指定的文件夹上生成这些CSV文件,我可以稍后在R中再次导入它们 或 将CSV文件的内容作为R中的几个表(矩阵或数据帧)保存,而不将其保存在任何位置 为了连接到SQL Server并执行存储过程,我编写了以下代码: library(RODBC) querystring <- paste("DECL

我试图在R中执行SQL Server存储过程。SQL Server过程的结果应该用于R代码的其余部分。通常,SQL Server过程的结果是在指定文件夹中保存一些CSV文件

在R代码中,我想:

  • 在指定的文件夹上生成这些CSV文件,我可以稍后在R中再次导入它们
  • 将CSV文件的内容作为R中的几个表(矩阵或数据帧)保存,而不将其保存在任何位置
  • 为了连接到SQL Server并执行存储过程,我编写了以下代码:

    library(RODBC)
    
    querystring <- paste("DECLARE @return_value int,",
                     "@Status int ",
                     "exec @return_value = pEDC_RunStandalone @SourceDB = 
    mySourceDB,",
                     "@PortInfoID = 'ALL',",
                     "@DestFileFolder = mySpecifiedDestinationPath,",
                     "@ConvertEQAsEQFire = 1,", 
                     "@Status = @Status OUTPUT ",
                     "SELECT 'Return Value' = @return_value",
                     sep ="")
    
    conn<- odbcDriverConnect('driver={SQL Server Native Client 11.0};server=myServer;database=myDatabaseName;trusted_connection=no;uid=myUID;pwd=myPassword')
    
    data <- sqlQuery(conn,querystring, errors=FALSE)
    
    odbcCloseAll()
    
    库(RODBC)
    
    我对你的问题做了一些测试。创建了一个正在输出文件的存储过程,并从R调用它。我在SQL Server 2016上没有问题。需要注意的一点是,如果您的存储过程中有多个输出,则只有第一个输出将返回到R,因此这可能会掩盖您的问题,如错误路径等。您能否指定如何创建CSV文件?嗨,Arnaud,感谢您的关注和参与。存储的进程应该导出多个csv文件,因此我们有多个输出。然而,我们甚至没有得到一个。存储过程实际上调用CLR存储过程。“使用EXECUTE AS CALLER作为外部名称[server]…[pClrExportToFile]”我将检查运行R进程的用户的安全性。当您自己执行存储过程时,可能会对CLR的执行有一些限制。检查SQLRUserGroup的权限