【发布时间】:2020-12-31 19:43:31
【问题描述】:
我正在使用 R 运行存储 SQL 过程:
query.str = "EXEC [StoredProcedure].[Procedure1]"
con <- odbcConnect("my_database")
my_data = sqlQuery(con, query.str)
此代码在我的笔记本电脑上运行良好。但是当我尝试在服务器上运行它时,它给出了一个错误:
42000 2812 [Microsoft][ODBC SQL Server Driver][SQL Server]Could not find stored procedure
我不认为这是存储过程本身的问题,因为我遇到了多个存储过程的相同情况(它们在我的笔记本电脑上工作,但在服务器上不工作)。
编辑:我确定连接字符串有效。当我对非存储过程使用相同的连接字符串时,它可以正常工作并且数据读取得很好。该问题仅发生在存储过程中。
提前谢谢你!
【问题讨论】:
-
检查数据库所在位置的连接字符串。如果它在本地工作,您可能有数据库的本地副本,但 SP 不在服务器上?或者当您在笔记本电脑以外执行它时,无法看到(或没有权限)从应用程序执行 SP 的 DB。
-
我确信连接正常,除了存储过程之外,一切都运行良好。
-
你说的服务器是什么意思?您的意思是在 R 之外使用像
sqlcmd或SSMSIDE 这样的 SQL Server 接口吗?正如您的代码所假设的那样,存储过程是否存在于特定数据库的dbo架构下?请运行information schema query 来定位数据库和模式名称下的存储过程。
标签: sql r stored-procedures odbc