本人属于刚开始学习存储过程的菜鸟一枚,现遇到这个问题解决不了,求大神指教:
我的存储过程是:
create or replace procedure lj_test(inparam in varchar2, outparam out varchar2, inoutparam in out varchar2)
as
varparam varchar2(28);
begin
varparam := inparam;
outparam := varparam || inoutparam;
end;调用的C#程序是:
conn.Open();
OracleCommand cmd = new OracleCommand("LJ_TEST", conn);
cmd.CommandType = CommandType.StoredProcedure; OracleParameter[] parameters ={
new OracleParameter("inparam",OracleType.VarChar),
new OracleParameter("outparam",OracleType.VarChar),
new OracleParameter("inoutparam",OracleType.VarChar,28)
};
parameters[0].Value = "dd";
parameters[2].Value ="ff";
parameters[0].Direction = ParameterDirection.Input;
parameters[1].Direction = ParameterDirection.Output;
parameters[2].Direction = ParameterDirection.InputOutput;
OracleDataReader oda = cmd.ExecuteReader(); while (oda.Read())
{
textBox1.Text = oda[0].ToString();
}
错误信息是:
ORA-06550: 第 1 行, 第 7 列:
PLS-00306: 调用 'LJ_TEST' 时参数个数或类型错误
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored存储c#pl/sqloracle
我的存储过程是:
create or replace procedure lj_test(inparam in varchar2, outparam out varchar2, inoutparam in out varchar2)
as
varparam varchar2(28);
begin
varparam := inparam;
outparam := varparam || inoutparam;
end;调用的C#程序是:
conn.Open();
OracleCommand cmd = new OracleCommand("LJ_TEST", conn);
cmd.CommandType = CommandType.StoredProcedure; OracleParameter[] parameters ={
new OracleParameter("inparam",OracleType.VarChar),
new OracleParameter("outparam",OracleType.VarChar),
new OracleParameter("inoutparam",OracleType.VarChar,28)
};
parameters[0].Value = "dd";
parameters[2].Value ="ff";
parameters[0].Direction = ParameterDirection.Input;
parameters[1].Direction = ParameterDirection.Output;
parameters[2].Direction = ParameterDirection.InputOutput;
OracleDataReader oda = cmd.ExecuteReader(); while (oda.Read())
{
textBox1.Text = oda[0].ToString();
}
错误信息是:
ORA-06550: 第 1 行, 第 7 列:
PLS-00306: 调用 'LJ_TEST' 时参数个数或类型错误
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored存储c#pl/sqloracle
-- Local variables here
param_out varchar2(28);
param_inout varchar2(28);
begin
param_inout := 'ff';
lj_test('dd',param_out,param_inout);
dbms_output.put_line(param_out);
-- Test statements here
end;
cmd.Parameters.AddRange(parameters);
自己在太粗心啦!!!