我正在嘗試使用GO
來讓R從SQL Server數據庫中提取多部分查詢,但是當我嘗試這樣做時,R仍然不斷向我發送錯誤消息。有誰知道解決方法讓RODBC運行多部分查詢?使用RODBC在SQL Server中進行多部分查詢
例子查詢:
query2 = "IF OBJECT_ID('tempdb..#ATTTempTable') IS NOT NULL
DROP TABLE #ATTTempTable
GO
SELECT
* INTO #ATTTempTable
FROM ETL.ATT.fact_responses fr
WHERE fr.ResponseDateTime > '2015-07-06'
"
channel <- odbcConnect("<host name>", uid="<uid>", pwd="<pwd>")
raw = sqlQuery(channel, query2)
close(channel)
,並導致
> raw
[1] "42000 102 [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Incorrect syntax near 'GO'."
[2] "[RODBC] ERROR: Could not SQLExecDirect 'IF OBJECT_ID('tempdb..#ATTTempTable') IS NOT NULL\n DROP TABLE #ATTTempTable\n\nGO\n\nSELECT\n\t* INTO #ATTTempTable\nFROM ETL.ATT.fact_responses fr\nWHERE fr.ResponseDateTime > '2015-07-06'\n'"
>
真的很酷的想法!當我嘗試它時,我會讓你知道。謝謝! – Moderat
我有一個在服務器上工作得很好的存儲過程,但當我嘗試在Rstudio環境中執行它時,它只是返回一個「整數(0)」響應,甚至沒有錯誤消息。我也收到了諸如'[1]「的錯誤消息42000 2812 [Microsoft] [ODBC SQL Server Driver] [SQL Server]無法找到存儲過程'getAttCeData'」。 [2]「[RODBC]錯誤:無法SQLExecDirect'EXEC getAttCeData'」'但這只是因爲我連接到服務器內的錯誤數據庫。你知道爲什麼它可能不會返回任何結果數據集?該過程在MSSQL中工作正常 – Moderat
嘗試添加'dbo'前綴:'exec dbo.getAttCeData'。在MSSQL裏面,你不需要明確地添加'dbo',但是它可能是必需的。 – Parfait