2014-07-10 59 views
1

我試圖運行在Oracle數據庫上使用實體框架6在VB.NET應用程序如下:實體框架ExecuteStoreCommand給{「ORA-00936:缺少表達式」}

mrstage.ExecuteStoreCommand("DELETE FROM CB_LISTINGS WHERE ELIGIBLE={0}", eligible) 

當執行,我得到錯誤:{「ORA-00936:missing expression」}

在我的表上,ELIGIBLE的類型是VARCHAR2,符合條件的變量是一個字符串。

如果我硬編碼參數,例如:

mrstage.ExecuteStoreCommand("DELETE FROM CB_LISTINGS WHERE ELIGIBLE='ECB'") 

它工作正常。

如果有人能提供任何建議,我將不勝感激。

謝謝!

詹姆斯

+0

已經有一段時間我沒有甲骨文,但如果我沒有記錯,參數名稱不同,嘗試'。 – DavidG

+0

這確實已經做到了!我曾假定參數轉換是由EntityFramework而不是DBMS引擎處理的。 –

+0

太好了,我會把它當作答案! – DavidG

回答

3

在Oracle參數不同的名稱,使用列參數一樣:0而不是{0}。而不是`0` {0}`:

所以,你的代碼現在:

mrstage.ExecuteStoreCommand(
    "DELETE FROM CB_LISTINGS WHERE ELIGIBLE=:0", 
    eligible)