使用oracle數據庫過程中,偶爾遇到 ORA-01008: 並非所有變量都已綁定 這個錯誤,此時應該查檢sql中是否有以下情況:
1、var sql = string.Format("select * from student t where t.name='{0}' and t.address='{1}'", name); 此時編譯不會報錯,當執行sql時就會報“ ORA-01008: 並非所有變量都已綁定 ”,原因是sql里有兩個參數,你只給第一個參數綁定值,沒有給第二個參數綁定值;
2、var sql = "select * from student t where t.name= :item";
string name = null;
List<OracleParameter> list = new List<OracleParameter>();
list.Add(new OracleParameter(":item",name ));
執行sql時如果沒有把null 轉化為DbNull同樣也會報以上錯誤
此時,應加
foreach (OracleParameter parm in parms)
{
if (parm.Value == null)
parm.Value = DBNull.Value;
}