您好我在Oracle 11g服务器上调用存储过程时遇到问题。ORA-06550:第1行,第7列:PLS-00306:错误的参数数量或类型
这是我的存储过程
PROCEDURE get_rit_by_user_id(KDC_KEY IN VARCHAR2,
p_id_utente IN NUMBER,
p_cur_out OUT type_cursor) IS
BEGIN
...
...
...
END
这是我的C#代码
OracleCommand cmd = new OracleCommand();
cmd.Connection = oracleConnection;
cmd.CommandText = userIdEsercizio + packageName + "GET_RIT_BY_USER_ID";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("KDC_KEY", OracleDbType.Varchar2, kdcKey, ParameterDirection.Input);
cmd.Parameters.Add("P_ID_UTENTE", OracleDbType.Int32, user_id, ParameterDirection.Input);
cmd.Parameters.Add("P_CUR_OUT", OracleDbType.RefCursor, ParameterDirection.Output);
OracleDataReader reader = cmd.ExecuteReader();
cmd.ExecuteReader()抛出此异常
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'GET_RIT_BY_USER_ID'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
我看不出什么错在我的C#代码。你会帮我吗?感谢
问候
我想念参数列表中的变量p_id_utente(尽管你有一个P_USER)。另外两个在那里。 – Independent 2012-07-16 13:21:56
这不是问题,我已经检查了参数 – 2012-07-16 13:25:17
的所有名称你看过这个SO问题:http://stackoverflow.com/questions/6360244/how-to-call-an-oracle-function-带有-ref-cursor-as-out-parameter-from-c – DCookie 2012-07-16 20:09:15