我在oracle中定义了一个存储过程:如下:
create or replace procedure select_example(ITEMTYPENAME in varchar2,
FACTORY in varchar2,
PARAID in varchar2,
MEMO in varchar2,
vResult out varchar2,
vMessage out varchar2
)
is
nMisid varchar2(20);
begin
select max(to_number(ITEMTYPEID)) into nMisid from GJ1_ITEM_TYPE_INFO;insert into GJ1_ITEM_TYPE_INFO (ITEMTYPEID,ITEMTYPENAME,FACTORY,PARAID,MEMO) values
(to_char(nMisid+1),ITEMTYPENAME,FACTORY,PARAID,MEMO);
commit;
exception
when others then
vResult := -1;
vMessage := sqlerrm;
rollback;
end select_example; 在c#中执行:
OracleCommand new_command = new OracleCommand();
new_command.Connection = oracleConnection1;
new_command.CommandText = "select_example";
new_command.CommandType = System.Data.CommandType.StoredProcedure; OracleParameter[] Para = new OracleParameter[4]; int i = 0;
for (i = 0; i < 4; i++)
{
Para[i] = new OracleParameter();
} Para[0].OracleType = OracleType.VarChar;
Para[1].OracleType = OracleType.VarChar;
Para[2].OracleType = OracleType.VarChar;
Para[3].OracleType = OracleType.VarChar;
Para[0].ParameterName = "ITEMTYPENAME";
Para[0].Value = ultraTextEditor1.Text;
new_command.Parameters.Add(Para[0]); Para[1].ParameterName = "FACTORY";
Para[1].Value = ultraTextEditor2.Text;
new_command.Parameters.Add(Para[1]);
Para[2].ParameterName = "PARAID";
Para[2].Value = ultraTextEditor3.Text;
new_command.Parameters.Add(Para[2]); Para[3].ParameterName = "MEMO";
Para[3].Value = ultraTextEditor4.Text;
new_command.Parameters.Add(Para[3]); oracleConnection1.Open();
string aa ;
aa = new_command.CommandText;
new_command.ExecuteNonQuery();
oracleConnection1.Close();执行时提示错误:ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'SELECT_EXAMPLE'
且在plsql中command window中执行 exec select_example('123','234','345','456');
出现了同样错误,请问错误出在哪,如何更正!
create or replace procedure select_example(ITEMTYPENAME in varchar2,
FACTORY in varchar2,
PARAID in varchar2,
MEMO in varchar2,
vResult out varchar2,
vMessage out varchar2
)
is
nMisid varchar2(20);
begin
select max(to_number(ITEMTYPEID)) into nMisid from GJ1_ITEM_TYPE_INFO;insert into GJ1_ITEM_TYPE_INFO (ITEMTYPEID,ITEMTYPENAME,FACTORY,PARAID,MEMO) values
(to_char(nMisid+1),ITEMTYPENAME,FACTORY,PARAID,MEMO);
commit;
exception
when others then
vResult := -1;
vMessage := sqlerrm;
rollback;
end select_example; 在c#中执行:
OracleCommand new_command = new OracleCommand();
new_command.Connection = oracleConnection1;
new_command.CommandText = "select_example";
new_command.CommandType = System.Data.CommandType.StoredProcedure; OracleParameter[] Para = new OracleParameter[4]; int i = 0;
for (i = 0; i < 4; i++)
{
Para[i] = new OracleParameter();
} Para[0].OracleType = OracleType.VarChar;
Para[1].OracleType = OracleType.VarChar;
Para[2].OracleType = OracleType.VarChar;
Para[3].OracleType = OracleType.VarChar;
Para[0].ParameterName = "ITEMTYPENAME";
Para[0].Value = ultraTextEditor1.Text;
new_command.Parameters.Add(Para[0]); Para[1].ParameterName = "FACTORY";
Para[1].Value = ultraTextEditor2.Text;
new_command.Parameters.Add(Para[1]);
Para[2].ParameterName = "PARAID";
Para[2].Value = ultraTextEditor3.Text;
new_command.Parameters.Add(Para[2]); Para[3].ParameterName = "MEMO";
Para[3].Value = ultraTextEditor4.Text;
new_command.Parameters.Add(Para[3]); oracleConnection1.Open();
string aa ;
aa = new_command.CommandText;
new_command.ExecuteNonQuery();
oracleConnection1.Close();执行时提示错误:ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'SELECT_EXAMPLE'
且在plsql中command window中执行 exec select_example('123','234','345','456');
出现了同样错误,请问错误出在哪,如何更正!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货