在R中执行SQL Server存储过程,但不获取CSV文件
我试图在R中执行SQL Server存储过程。SQL Server过程的结果应该用于R代码的其余部分。通常,SQL Server过程的结果是在指定文件夹中保存一些CSV文件 在R代码中,我想:在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
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的权限