OracleParameter传值报错ORA-01036: 非法的变量名/编号
我有多条sql语句,放入list1中,对应多个OracleParameter[] 传值,放入list2中,我写了一个执行多条sql语句的方法,
for (int n = 0; n < list1.Count; n++)
{
string strsql = list1[n].ToString();
cmd.CommandType = CommandType.Text;
if (strsql.Trim().Length > 1)
{
if (list.Count>0)
{
OracleParameter[] pars =(OracleParameter[])list2[n];
cmd.Parameters.AddRange(pars);
}
cmd.CommandText = strsql;
cmd.ExecuteNonQuery();
}
}
执行第一个语句的时候不报错,执行第二个的时候到cmd.ExecuteNonQuery();这个报错ORA-01036: 非法的变量名/编号
------解决方案--------------------cmd.Parameters.Clear();
你需要把上一次执行时添加的parameter清除掉先。