我正在使用下面的oracle SP并尝试在C#代码中调用此SP,但是在调用中接收到“错误数量或类型的参数”。如何在C#代码中调用此过程。请参阅下面我正在使用的C#代码。
PROCEDURE UPDATE_KeyValue(
PAR_ID IN VARCHAR2,
PAR_STATUS OUT VARCHAR2 )
IS
BEGIN
--
PAR_STATUS := 'OK';
--
UPDATE TableName SET Key = 'Y'
WHERE ID= PAR_ID
--
COMMIT;
--
END UPDATE_KeyValue;
C#代码:
cmd.CommandText = "UPDATE_KeyValue";
cmd.CommandType = CommandType.StoredProcedure;
OracleParameter PAR_ID1 = new OracleParameter();
PAR_ID1.ParameterName = "PAR_ID ";
PAR_ID1.OracleDbType = OracleDbType.Varchar2;
PAR_ID1.Direction = System.Data.ParameterDirection.Input;
PAR_ID1.Value = 131;
cmd.Parameters.Add(PAR_ID1);
OracleParameter PAR_STATUS1 = new OracleParameter();
PAR_STATUS1.ParameterName = "PAR_STATUS";
PAR_STATUS1.OracleDbType = OracleDbType.Varchar2;
PAR_STATUS1.Direction = ParameterDirection.Output;
cmd.Parameters.Add(PAR_STATUS1);
cmd.ExecuteNonQuery();
答案 0 :(得分:0)
我将命令对象名称更改为cmd1,因为我使用cmd作为上一个命令,我也添加了参数大小PAR_STATUS1.Size = 8000;输出参数,这解决了我的问题。