Foros del Web » Programación para mayores de 30 ;) » .NET »

Error al ejecutar funcion Oracle

Estas en el tema de Error al ejecutar funcion Oracle en el foro de .NET en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 23/04/2010, 12:52
 
Fecha de Ingreso: abril-2010
Ubicación: Buenos Aires
Mensajes: 1
Antigüedad: 14 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.-

Etiquetas: ejecutar, funcion, oracle
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:36.