[b]C#调用oracle存储过程 最简单的实例
Oracle方面
1.创建Oracle过程存储
create or replace procedure proce_test
(
paramin in varchar2,
paramout out varchar2,
paraminout in out varchar2
)
as
varparam varchar2(28);
begin
varparam:=paramin;
paramout:=varparam|| paraminout;
end;
2.测试过程存储
declare
param_out varchar2(28);
param_inout varchar2(28);
begin
param_inout:='ff';
proce_test('dd',param_out,param_inout);
dbms_output.put_line(param_out);
end;
C#方面
引用Oracle组件
namespace OraWinApp
{
public class Procedure
{
public string SpExeFor(string ID,string UserName)
{
//declare the values
OracleParameter[] parameters={
new OracleParameter("paramin",OracleType.VarChar,20),
new OracleParameter("paramout",OracleType.VarChar,20),
new OracleParameter("paraminout",OracleType.VarChar,20)
};
parameters[0].Value=ID;
parameters[2].Value=UserName;
parameters[0].Direction=ParameterDirection.Input;
parameters[1].Direction=ParameterDirection.Output;
parameters[2].Direction=ParameterDirection.InputOutput;
try
{
RunProcedure("proce_test",parameters);
return parameters[1].Value.ToString();
}
catch(Exception e)
{
throw e;
}
}
private void RunProcedure(string storedProcName, OracleParameter[] parameters)
{
// Get a connection to the db
// context connection is used in a stored procedure
String ConnectionString = "Data Source=Pubs;Persist Security Info=True;User ID=sys;Password=123;Unicod" + "e=True";
OracleConnection conn = new OracleConnection(ConnectionString);
conn.Open();
OracleCommand cmd = new OracleCommand();
cmd.CommandText = storedProcName; //declare the stored name
cmd.CommandType = CommandType.StoredProcedure;
foreach (OracleParameter parameter in parameters)
{
cmd.Parameters.Add(parameter);
}
cmd.ExecuteNonQuery(); //execute the stored
}
测试结果:ddff[/b]
Oracle方面
1.创建Oracle过程存储
create or replace procedure proce_test
(
paramin in varchar2,
paramout out varchar2,
paraminout in out varchar2
)
as
varparam varchar2(28);
begin
varparam:=paramin;
paramout:=varparam|| paraminout;
end;
2.测试过程存储
declare
param_out varchar2(28);
param_inout varchar2(28);
begin
param_inout:='ff';
proce_test('dd',param_out,param_inout);
dbms_output.put_line(param_out);
end;
C#方面
引用Oracle组件
namespace OraWinApp
{
public class Procedure
{
public string SpExeFor(string ID,string UserName)
{
//declare the values
OracleParameter[] parameters={
new OracleParameter("paramin",OracleType.VarChar,20),
new OracleParameter("paramout",OracleType.VarChar,20),
new OracleParameter("paraminout",OracleType.VarChar,20)
};
parameters[0].Value=ID;
parameters[2].Value=UserName;
parameters[0].Direction=ParameterDirection.Input;
parameters[1].Direction=ParameterDirection.Output;
parameters[2].Direction=ParameterDirection.InputOutput;
try
{
RunProcedure("proce_test",parameters);
return parameters[1].Value.ToString();
}
catch(Exception e)
{
throw e;
}
}
private void RunProcedure(string storedProcName, OracleParameter[] parameters)
{
// Get a connection to the db
// context connection is used in a stored procedure
String ConnectionString = "Data Source=Pubs;Persist Security Info=True;User ID=sys;Password=123;Unicod" + "e=True";
OracleConnection conn = new OracleConnection(ConnectionString);
conn.Open();
OracleCommand cmd = new OracleCommand();
cmd.CommandText = storedProcName; //declare the stored name
cmd.CommandType = CommandType.StoredProcedure;
foreach (OracleParameter parameter in parameters)
{
cmd.Parameters.Add(parameter);
}
cmd.ExecuteNonQuery(); //execute the stored
}
测试结果:ddff[/b]
本文介绍了一个简单的示例,展示了如何使用C#来调用Oracle数据库中的存储过程。该示例包括了创建Oracle存储过程、在PL/SQL中进行测试以及在C#应用程序中实现的过程。
1626

被折叠的 条评论
为什么被折叠?



