C# Webservice调用oracle存储过程
C# Webservice方法
public int InsertToDataBase(string CorporationName, string DriverID, string DriverName, string FingerPrint)
{
int retCode = 0;
string sql_string = "PRC_TEST";
OracleConnection connect = new OracleConnection(connect_string);
OracleCommand command = new OracleCommand(sql_string, connect);
command.CommandType = CommandType.StoredProcedure;
OracleParameter parm1 = new OracleParameter();
OracleParameter parm2 = new OracleParameter();
OracleParameter parm3 = new OracleParameter();
OracleParameter parm4 = new OracleParameter();
OracleParameter parm5 = new OracleParameter();
//in
parm1 = new OracleParameter("CorporationName", OracleType.NVarChar, 100);
parm2 = new OracleParameter("DriverID", OracleType.NVarChar, 50);
parm3 = new OracleParameter("DriverName", OracleType.NVarChar, 20);
parm4 = new OracleParameter("FingerPrint", OracleType.NVarChar, 1024);
//out
parm5 = new OracleParameter("retCode", OracleType.Number, 9);
parm1.Direction = ParameterDirection.Input;
parm2.Direction = ParameterDirection.Input;
parm3.Direction = ParameterDirection.Input;
parm4.Direction = ParameterDirection.Input;
parm5.Direction = ParameterDirection.Output;
parm1.Value = CorporationName;
parm2.Value = DriverID;
parm3.Value = DriverName;
parm4.Value = FingerPrint;
parm5.Value = retCode;
connect.Open();
command.ExecuteNonQuery();
retCode = Convert.ToInt32(parm5.Value);
return retCode;
}
存储过程
create or replace procedure PRC_TEST(
CorporationName in nvarchar2,
DriverID in nvarchar2,
DriverName in nvarchar2,
FingerPrint in nvarchar2,
retCode out number
)
is
v_sql number;
begin
insert into FingerPrint(id,staffid) values(CRANE_FINGERPRINT_SEQ.NEXTVAL, DriverID);
commit;
retCode := 500;
end PRC_TEST;
调试出现问题:
System.Data.OracleClient.OracleException: ORA-06550: 第 1 行, 第 7 列:
PLS-00306: 调用 'PRC_TEST' 时参数个数或类型错误
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored
各位帮忙看看 谢谢