【发布时间】:2016-01-28 12:27:54
【问题描述】:
我正在使用我在 Microsoft SQL Server 2012 上应用的 RODBC 包。
现在我发现了一个令我困惑的现象。
如果我使用 RODBC 命令 sqlQuery 运行以下查询,那么在 R 中,我将返回一个包含 Country、CID、PriceID 和 WindID 列的空数据框。
DECLARE @tbl_IDs TABLE
(
Country nvarchar(30),
CID nvarchar(5),
PriceID int,
WindID int
)
SELECT * FROM @tbl_Ids
到目前为止,一切都很好。
但是,如果我尝试将记录写入表变量并执行
DECLARE @tbl_IDs TABLE
(
Country nvarchar(30),
CID nvarchar(5),
PriceID int,
WindID int
)
INSERT INTO @tbl_IDs
VALUES
('Germany', 'DE', 112000001, 256000002);
SELECT * FROM @tbl_Ids
然后,在 R 中,结果将是一个空字符,而不是具有一条记录的数据框。同样的查询仍然可以完美地与 SQL Server Management Studio 配合使用。 此外,我们在执行 R-Query 时跟踪了 DB 服务器的行为,似乎服务器完美地处理了它。好像是RODBC接口有问题将结果返回到R控制台。
有人知道如何解决这个问题吗?
【问题讨论】:
-
尝试将表变量更改为临时表。
CREATE TABLE #tbl_IDs ( Country nvarchar(30), CID nvarchar(5), PriceID int, WindID int ); INSERT INTO #tbl_IDs VALUES ('Germany', 'DE', 112000001, 256000002); SELECT * FROM #tbl_Ids -
感谢您的回答,但这并没有解决问题。我们之前已经测试过了。
标签: r tsql rodbc table-variable