要求在在oracle 10G中运行,传入一个参数,返回一个数据集,跟下列SQL server 中的效果一样
create procedure prc_aaselect
(@id  varchar(10))
as
select * from sales where stor_id=@id用ASP.NET能执行该存储过程!
解决马上结帐!

解决方案 »

  1.   

    PROCEDURE GetUpLoadNetDisk(ps_ID IN VARCHAR2,ps_ReturnCur OUT Sys_Base.BaseCursor)
    AS
    BEGIN
    open  ps_ReturnCur for
    select * from sales where stor_id=ps_ID;
    END;
      

  2.   

    ORACLE跟SQL是有区别的.
    PROCEDURE GetUpLoadNetDisk(ps_ID IN VARCHAR2,ps_ReturnCur OUT Sys_Base.BaseCursor)
    as 
    /*首先为该过程定义一个游标用于存放要处理的记录集*/
    cursor c_name is select * from sales where stor_id=ps_ID ;
    --变量区   
    Begin
       open c_name;
          loop
          fetch c_name into xx,xx;
          exit when c_name%notfound; 
               end loop;
          --------------------------------------------------------------------------------------------------------
          close c_decl;
    end;
      

  3.   

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Data.OracleClient;namespace WebApplication11
    {
    /// <summary>
    /// WebForm3 的摘要说明。
    /// </summary>
    public class WebForm3 : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.Button Button1;

    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.Button1.Click += new System.EventHandler(this.Button1_Click);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion private void Button1_Click(object sender, System.EventArgs e)
    {
    OracleConnection myConnection = new OracleConnection("server = sub_test; user = psalmgr; password=psalmgr1");
    myConnection.Open();
    OracleCommand myCommand = myConnection.CreateCommand();
    OracleTransaction myTrans;
    myTrans = myConnection.BeginTransaction(IsolationLevel.ReadCommitted);
    myCommand.Transaction = myTrans;

    try
    {
    // myCommand.CommandText = "declare ls_rtn VARCHAR2(200); begin ls_rtn := f_invr955('"+parameters[0]+"','"+parameters[1]+"','"+parameters[2]+"','"+parameters[3]+"','"+parameters[4]+"','"+parameters[5]+"','"+parameters[6]+"','"+parameters[7]+"','"+parameters[8]+"','"+parameters[9]+"','"+parameters[10]+"','"+parameters[11]+"'); end;";
    myCommand.CommandText = "declare l_return varchar2(200); begin l_return := f_rpt_presale('B2100','200603',1,2); end;";
    myCommand.ExecuteNonQuery();
    }
    catch(Exception ex)
    {
    Response.Write(ex.Message);
    }
    }
    }
    }