Я пытаюсь использовать GO
, чтобы получить R, чтобы вытащить многостраничный запрос из базы данных SQL Server, но R продолжает обходить меня, когда я пытаюсь это сделать. Кто-нибудь знает обходное решение, чтобы заставить RODBC запускать многопроцессорные запросы?Многостраничные запросы в SQL Server с RODBC
Пример запроса:
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, она просто возвращает ответ «integer (0)», даже сообщение об ошибке. Я также получил сообщения об ошибках типа «[1]» 42000 2812 [Microsoft] [драйвер SQL Server ODBC] [SQL Server] Не удалось найти хранимую процедуру «getAttCeData». [2] "[RODBC] ОШИБКА: Не удалось SQLExecDirect 'EXEC getAttCeData'", но это было только потому, что я подключался к неправильной базе данных на сервере. Вы знаете, почему он не может возвращать набор данных результатов? Эта процедура отлично работает, когда в MSSQL – Moderat
Попробуйте добавить префикс 'dbo':' exec dbo.getAttCeData'. Внутри MSSQL вам не нужно явно добавлять 'dbo', но вне этого может потребоваться. – Parfait