我試圖更新Oracle數據庫中的表。此代碼通過硬編碼狀態代碼作品和更新記錄:更新Oracle數據庫拋出非法變量名稱/數量異常
public WorkRates UpdateRecord(int id, string stateCode)
{
var sql = "update work_rates set state_code = 'WA' where id = :id";
var db = Db.Load(sql);
db.AddParameter(":id", id);
db.DoExecute();
return null;
}
當我把它改成這樣:
public WorkRates UpdateRecord(int id, string stateCode)
{
var sql = "update work_rates set state_code = :stateCode where id = :id";
var db = Db.Load(sql);
db.AddParameter(":id", id);
db.AddParameter(":stateCode", stateCode);
db.DoExecute();
return null;
}
...它拋出異常「ORA-01036:非法的變量名/數」。函數public WorkRates UpdateRecord(int id,string stateCode)確實爲stateCode('WA')獲得了正確的值。任何幫助表示讚賞!
不工作,如果你把id:addParameter之前的:stateCode addParameter? –
@BrianMcGinity - 是的,它的工作!這對我來說沒有任何意義,爲什麼改變立場可以修復它...... – Kate
由於某些原因,Oracle喜歡按照它們在sql語句中出現的順序知道綁定變量。就好像甲骨文是有約束力的。在存儲過程中編寫動態sql時遇到同樣的問題。 –