
23/04/2010, 12:52
|
| | Fecha de Ingreso: abril-2010 Ubicación: Buenos Aires
Mensajes: 1
Antigüedad: 15 años Puntos: 0 | |
Error al ejecutar funcion Oracle Hola, buenas tardes. Tengo un error cuando estoy ejecutando desde .NET una funcion de Oracle utilizando la libreria de Oracle.DataAccess.
¿Estoy haciendo algo mal? No me doy cuenta que error estoy cometiendo :S
El error es el siguiente ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at line 1
El encabezado de la funcion es este FUNCTION ENCRIPTARPWD(vcPWD IN VARCHAR2
, vnError OUT NUMBER) RETURN VARCHAR2;
El codigo con el cual estoy queriendo ejecutar desde .NET es el siguiente public static string EncryptPwd(string password)
{
Database db = DatabaseFactory.CreateDatabase("pps");
OracleConnection oraConn = new OracleConnection();
oraConn.ConnectionString = db.ConnectionString;
oraConn.Open();
OracleCommand cmd = oraConn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "pas_ccc_enc.encriptarpwd";
cmd.Parameters.Add("vcPWD", OracleDbType.Varchar2,4000, password, ParameterDirection.Input);
cmd.Parameters.Add("vnError", OracleDbType.Int32);
cmd.Parameters["vnerror"].Direction = ParameterDirection.Output;
cmd.Parameters.Add("P_RV", OracleDbType.Varchar2);
cmd.Parameters["P_RV"].Direction = ParameterDirection.ReturnValue;
try
{
cmd.ExecuteNonQuery();
int pError = int.Parse(cmd.Parameters["pn_error"].Value.ToString());
if (pError != 0)
{
string pErrorMsg = cmd.Parameters["pc_errmsg"].Value.ToString();
throw new Exception(String.Format("Error : {0}. {1}", pError, pErrorMsg));
}
return cmd.Parameters["vRes"].Value.ToString();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
Desde ya les agradezco
Saludos.- |