【发布时间】:2020-06-06 16:39:15
【问题描述】:
我是 R 新手 - 但我希望在 SQL Server 上的多个数据库中执行 SQL Server 游标查询并将结果存储在数据框中 - 我已连接到服务器,并且我有一个单独的文件,其中包含 SQL -
SQL (cursor_query.sql) -
CREATE TABLE #tempRPT
(date DATE,
number INT,
type nvarchar(255)
);
DECLARE @sql NVARCHAR(4000);
DECLARE @DBNAME NVARCHAR(255);
DECLARE dbcursor CURSOR STATIC
FOR SELECT [name]
FROM sysdatabases;
OPEN dbcursor;
FETCH NEXT FROM dbcursor INTO @DBNAME;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @sql = 'USE ['+@DBNAME+'];
select
cast(startdatetime as date),
count(*),
''bookings''
from bookings
group by cast(startdatetime as date);'
INSERT INTO #tempRPT
EXEC (@sql);
FETCH NEXT FROM dbcursor INTO @DBNAME;
END;
CLOSE dbcursor;
DEALLOCATE dbcursor;
SELECT *
FROM #tempRPT;
DROP TABLE #tempRPT;
我正在尝试使用以下内容将其读入 R -
Results <-
sqlQuery(
odbcConnect(dsn = "Database", uid = "***", pwd = "***"),
query = readLines("cursor_query.sql", warn=FALSE)
)
但我没有得到任何结果 - 关于如何执行此操作的任何想法或建议?
【问题讨论】:
-
首先尝试一个简单的选择查询。如果可行,请尝试在查询中使用永久表并查看。