zoukankan      html  css  js  c++  java
  • Oracle创建包、存储过程,及C#中调用

    create or replace package body PK_DataTransfer is

    --  积分卡合并                            2009-7-14
        procedure p_MemberMergence(s_SMemberID in nvarchar2,s_TMemberID in nvarchar2,n_Usersn in number) is
        begin
             update plus.tsell s
                set s.memberid=s_TMemberID,s.lastupdatedby=n_Usersn,s.lastupdatedon=sysdate
              where s.memberid=s_SMemberID;

             update plus.tsellrgoods r
                set r.memberid=s_TMemberID,r.lastupdatedby=n_Usersn,r.lastupdatedon=sysdate
              where r.memberid=s_SMemberID;

             update plus.tpointmanage p
                set p.ghmembersn=(select ghmembersn
                                    from tmember
                                   where memberid=s_TMemberID)
                   ,p.lastupdatedby=n_Usersn,p.lastupdatedon=sysdate
             where p.ghmembersn=(select ghmembersn
                                   from tmember
                                  where memberid=s_SMemberID);

             update plus.tmember m
                set m.mpointsum=nvl(m.mpointsum,0)+(select mpointsum
                                                      from plus.tmember a
                                                     where a.memberid=s_SMemberID)
                   ,m.lastupdatedby=n_Usersn,m.lastupdatedon=sysdate
              where m.memberid=s_TMemberID;

             update plus.tmember m
                set m.flag='*',m.pointsum=0,m.amountsum=0,m.lastupdatedby=n_Usersn,m.lastupdatedon=sysdate
              where m.memberid=s_SMemberID;

             commit;
        end;

    C#中执行Oracle中的存储过程
     OracleParameter[] pms={new OracleParameter("s_SMemberID",OracleType.NVarChar,50),
                new OracleParameter("s_TMemberID",OracleType.NVarChar,50),
                new OracleParameter("n_Usersn",OracleType.Number)
               };
        pms[0].Value=ds.Tables[0].Rows[0][0].ToString();
        pms[0].Direction=ParameterDirection.Input;
        pms[1].Value=ds.Tables[0].Rows[0][1].ToString();
        pms[1].Direction=ParameterDirection.Input;
        pms[2].Value=Convert.ToInt64(this.Session["UserId"].ToString());
        pms[2].Direction=ParameterDirection.Input;
        dboperReq.RunProcedure("PK_DataTransfer.p_MemberMergence",pms);

    public void RunProcedure(string storedProcName,OracleParameter[] parameters)
      {
       OracleConnection oracleconn = new OracleConnection() ;
       OracleCommand oraclecmd = new OracleCommand() ;
       oracleconn.ConnectionString =ConfigurationSettings.AppSettings["DBConnfortrans"] ;
       oraclecmd.Connection = oracleconn ;
       oracleconn.Open() ;   
       OracleTransaction otrans=oracleconn.BeginTransaction();         
       
       try
       {
        oraclecmd.Transaction=otrans;
        oraclecmd.CommandText=storedProcName;//声明存储过程名
        oraclecmd.CommandType=CommandType.StoredProcedure;
        foreach(OracleParameter parameter in parameters)
        {
         oraclecmd.Parameters.Add(parameter);
        }
        oraclecmd.ExecuteNonQuery();//执行存储过程
        otrans.Commit();
        oraclecmd.Dispose();
        oracleconn.Dispose();
       }
       catch(Exception err)
       {
        otrans.Rollback();
        oraclecmd.Dispose();
        oracleconn.Dispose();
        throw err ;
       }
      }

  • 相关阅读:
    Zebra命令模式分析(一)  分析
    sublime text2
    开源路由软件zebra的命令存储原理及使用方法
    开源路由软件zebra介绍和和在Linux环境下的安装
    jQuery删除节点
    如何成为一名软件架构师
    jQuery中的DOM操作
    编写自己的Shell解释器
    Notepad++集成VC2010环境
    ffmpeg使用语法
  • 原文地址:https://www.cnblogs.com/jameshappy/p/1534773.html
Copyright © 2011-2022 走看看