日期:2014-05-16  浏览次数:20839 次

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清除掉先。