存储过程是以下这个样子的
create or replace
PACKAGE TOS_SP_DOCTORMST AS
  TYPE CursorType IS REF CURSOR;
  PROCEDURE GET_DOCTORMST(v_doctorcodeVers IN VARCHAR2,
                          v_delflg         IN VARCHAR2,
                          v_withdata       IN VARCHAR2,
                          v_columnList     IN VARCHAR2,
                          RefCur_MasterBO  OUT CursorType,
                          v_totalCount     OUT VARCHAR2);
END;
我写个程序调用这个存储过程
            string conStr = "...................";
            DataSet ds = new DataSet();
            Oracle.DataAccess.Client.OracleConnection con = new Oracle.DataAccess.Client.OracleConnection(conStr);
            Oracle.DataAccess.Client.OracleDataAdapter da = new Oracle.DataAccess.Client.OracleDataAdapter("GET_DOCTORMST", con);
            da.SelectCommand.CommandType = CommandType.StoredProcedure;
            da.Fill(ds);
            Console.Read();
请问存储过程的参数在代码里面怎么写啊?  尤其是红色的游标

解决方案 »

  1.   

    参考 关于存储过程参数输入输出http://www.cnblogs.com/VitoriaTang/archive/2006/08/04/467765.html
      

  2.   

    http://blog.csdn.net/itblog/article/details/752869
      

  3.   

    类似这种,自己换成你的字段 using (sqlCon = new SqlConnection(ConStr))
                    {
                        sqlCon.Open();
                        sqlComm = new SqlCommand("queryStuNameById", sqlCon);
                        //设置命令的类型为存储过程
                        sqlComm.CommandType = CommandType.StoredProcedure;
                        //设置参数
                        sqlComm.Parameters.Add("@stuId", SqlDbType.VarChar);
                        //注意输出参数要设置大小,否则size默认为0,
                        sqlComm.Parameters.Add("@stuName", SqlDbType.VarChar, 10);
                        //设置参数的类型为输出参数,默认情况下是输入,
                        sqlComm.Parameters["@stuName"].Direction = ParameterDirection.Output;
                        //为参数赋值
                        sqlComm.Parameters["@stuId"].Value = "1234";
                        //执行
                        sqlComm.ExecuteNonQuery();
                        //得到输出参数的值,把赋值给name,注意,这里得到的是object类型的,要进行相应的类型轮换
                        name = sqlComm.Parameters["@stuName"].Value.ToString();
                    }
                }
                catch (Exception ex)
      

  4.   

    0 0,返回一个dataset ,那干嘛输出一个CursorType?