如果一个存储过程带输出参数,该如何得到他输出的值。
请各位帮忙~~~急~~~~~

解决方案 »

  1.   


    定义一个变量
    如下
    declare @out_put
    然后把@out_put放在你定义的返回参数那
    执行后@out_put就是你的返回结果
      

  2.   

    这是调用oracle中的包的一段代码:
    string IDept.GetSettlementDept(string orgID, string deptCode)
            {
                // 调用包
                string sql = "BizCommon.GetSettlementDept";            OracleConnection conn = (OracleConnection)DataSource.GetConn();
                OracleCommand cmd = new OracleCommand(sql, conn);
                cmd.CommandType = CommandType.StoredProcedure;            OracleParameter paraOrgID = new OracleParameter();
                paraOrgID.OracleType = OracleType.VarChar;
                paraOrgID.ParameterName = "cv_orgID";
                paraOrgID.Value = orgID;
                cmd.Parameters.Add(paraOrgID);            OracleParameter paraDeptCode = new OracleParameter();
                paraDeptCode.OracleType = OracleType.VarChar;
                paraDeptCode.ParameterName = "cv_deptCode";
                paraDeptCode.Value = deptCode;
                cmd.Parameters.Add(paraDeptCode);            OracleParameter paraResult = new OracleParameter();
                paraResult.OracleType = OracleType.VarChar;
                //paraResult.ParameterName = "result";
                paraResult.Size = 100;
                paraResult.Direction = ParameterDirection.ReturnValue;
                cmd.Parameters.Add(paraResult);            using (conn)
                {
                    conn.Open();
                    cmd.ExecuteNonQuery();
                    conn.Close();
                    if (paraResult.Value == null)
                        return string.Empty;
                    else
                        return paraResult.Value.ToString();
                }
            }
      

  3.   

    create procedure test
    @out_put output char(10)
    as
    select @out_put=convert(char(10),getdate(),111)返回处的定义
    declare @out_put
    exec test @out_put
      

  4.   

    各位高手,我说的是在.net中如何得到存储过程输出参数的值。不是返回值,也不是在sql 中,
    请各位高手帮忙。
      

  5.   

    1.         调用包含out/ in out类型参数的存储过程存储过程:CREATE OR REPLACE PROCEDURE "SITE_EDITSITEDATAEXIST"    (id_ number,name_ varchar2,httpRoot_ varchar2,flag out integer )//out 只具备输出功能 in out 为输入/输出型astempNum integer;begin      flag:=0;    select count(id) into tempNum  from WebSite_Info where Name = name_ and ID<>id_;       if tempNum > 0 then           flag:=3;        end if;    select count(id) into tempNum  from WebSite_Info where HttpRoot = HttpRoot_ and ID<>id_;       if tempNum > 0 then           flag:=4;        end if;      commit;end ;/调用方法: OracleParameter retPar = new OracleParameter(“channelId”, OracleType.Number);    retPar.Direction = ParameterDirection.Output;//此处和存储过程中的类型匹配//如果为in out 类型 此处应声//明InputOutputOracleParameter[] param = new OracleParameter[ 2 ]{      new OracleParameter(“subjectId”, OracleType.VarChar, 60)  };        param[ 0 ].Value = 0; OracleHelper.ExecuteReader( OracleHelper.CONN_STRING_BASE, CommandType.StoredProcedure,"site_EditSiteDataExist" ,param);//有返回值时必须使用ExecuteReader方法                object val = param[ 3 ].Value;                    return int.Parse( val.ToString() );