当我在我的 .net mvc 项目中使用旧的 Oracle Dll 时,它可以工作:
cmd.CommandText = "dba.user_login";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("KUL", OracleType.VarChar).Value = userName;
cmd.Parameters.Add("SIFRE", OracleType.VarChar).Value = pass;
cmd.Parameters.Add("FLAG", OracleType.Float).Value = 1;
cmd.Parameters.Add("HATA", OracleType.VarChar).Value = "error";
cmd.Parameters.Add("result", OracleType.Float).Direction = ParameterDirection.ReturnValue;
但是由于不推荐使用旧的 oracle dll,我想使用新的 oracle .net 提供程序。我试过这个:
cmd.CommandText = "dba.user_login";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("KUL", OracleDbType.Varchar2).Value = userName;
cmd.Parameters.Add("SIFRE", OracleDbType.Varchar2).Value = pass;
cmd.Parameters.Add("FLAG", OracleDbType.Single).Value = 1;
cmd.Parameters.Add("HATA", OracleDbType.Varchar2).Value = "error";
cmd.Parameters.Add("result", OracleDbType.Single).Direction = ParameterDirection.ReturnValue;
但它不起作用。例外:ORA-06502:PL/SQL:数字或值错误:字符到数字的转换错误\nORA-06512:在第 1 行,谁能帮我解决这个问题。谢谢你。