Oracle创建包、存储过程,及C#中调用
2009-07-30 10:22
435 查看
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 ;
}
}
-- 积分卡合并 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 ;
}
}
相关文章推荐
- oracle创建存储过程并返回结果集(附C#调用代码)
- Oracle创建表语句(Create table)语法详解及示例、、 C# 调用Oracle 存储过程返回数据集 实例
- SQLServer中存储过程StoredProcedure创建及C#调用(转)
- oracle创建定时job,job调用存储过程,批量查询,批量修改,自定义数据类型,
- Oracle创建存储过程以及JAVA调用方法
- 发布NBearLite v1.0.0 beta - 全面支持SqlServer,Oracle,MySql,PostgreSql数据库存储过程调用代码生成(C#/VB.NET)
- oracle 创建包和存储过程并调用举例
- (转)C#中调用ORACLE的PACKAGE里方法和存储过程的应用
- SQL Server中存储过程Stored Procedure创建及C#调用
- 创建oracle的存储过程,以及通过JDBC调用该存储过程
- SQL Server2012 创建数据库存储过程和VS2015 C#调用自己的存储过程
- C#调用Oracle的存储过程
- oracle中创建存储过程,以及存储过程中调用游标
- oracle创建存储过程并调用
- 发布NBearLite v1.0.0 beta - 全面支持SqlServer,Oracle,MySql,PostgreSql数据库存储过程调用代码生成(C#/VB.NET)
- Oracle 使用OUT参数创建/调用存储过程
- C# 连接Oracle,并调用存储过程(存在返回值),C# 调用sql存储过程
- Oracle 使用IN OUT参数创建/调用存储过程
- oracle利用job创建一个定时任务,定时调用存储过程
- c# 调用oracle 存储过程、方法简易例子