OracleParameterCollection sqlParams = theCommand.Parameters;
sqlParams.Add(new OracleParameter(":id", OracleType.number).Value = seq1+".nextval";

解决方案 »

  1.   

    先执行select xxx.nextval from dual获取序列的值,然后再赋值.
      

  2.   

    如果就是想sqlParams.Add(new OracleParameter(":id", OracleType.number).Value = seq1+".nextval"; 这样赋值是不是没有解决办法?
      

  3.   

    这个是一个sequence的下一个值,要想放到参数里,必须先取出来,在放入参数中。其实建议lz不要这样,根本没有必要。只要在执行的sql语句中直接获得就可以了。
    select * from t_name t where t.id = xxx.nextval; 
      

  4.   

    否则你要专门为了得到这个nextval而访问一次数据库。然后把这个值放入你的参数列表中。
    select xxx.nextval from dual;