2014-07-25 128 views
4

我正在使用RODBC連接到Microsoft Access數據庫。某些查詢做工精細,但有一個我不斷收到錯誤:「太少參數」試圖連接到R的Microsoft Access數據庫

07002 -3010 [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1. 
[RODBC] ERROR: Could not SQLExecDirect 'SELECT baseunit FROM archiverapp_common_units WHERE unitname = "ng/ml"' 

我用「的SQLQuery」功能進行查詢。錯誤中給出的SELECT語句就是我想要的,並且在直接複製到Access中時可以工作。從我收集的類似帖子看來,這通常是拼寫錯誤的列或表名,但在這裏一切看起來都是正確的。

+0

可能是您的'ng/ml'的語言環境/編碼問題,您是否嘗試過在命令行輸入此查詢? –

+0

你讓我與命令行混在一起,我發現它顯然不喜歡你使用雙引號,單一的工作正常。 – JaredL

回答

5

想通了 - 顯然答案是在WHERE子句中使用單引號而不是雙引號。從這個

'SELECT baseunit FROM archiverapp_common_units WHERE unitname = "ng/ml"' 

在我的R代碼裏面更改查詢字符串來此

"SELECT baseunit FROM archiverapp_common_units WHERE unitname = 'ng/ml'" 

解決了這個問題。

+0

你有逃脫嗎?發佈你的最終命令將是hellogful – Brad

+0

不,如果在R中的字符串周圍使用雙引號,則不會轉義。儘管轉義並不會造成傷害。 – JaredL

+0

有同樣的問題。首先,我認爲它與我的查詢的UNION類型有關。經過幾次嘗試,通過調用字段'格式(DtTm,「短日期」)作爲Dt,將其縮小爲使用的雙引號。用單引號替換;並且,從'R'中的'RODBC :: sqlQuery()'查詢調用工作正常。謝謝! –

相關問題