Hola a todos,
tengo un problema curioso que no llego a comprender.
Tengo una función que llama a un procedimiento almacenado en una base de datos Oracle.
Crea la cadena de conexion
Me.cadenaConexion = CON
Llama al procedimiento
Me.fCrearUSP("usp_PCgetValorConstante")
Crea los parametros de entrada
Me.fCrearParametroUSP("@idEntorno", Int, 4, Input,1)
Me.fCrearParametroUSP("@Clave", VarChar, 50, Input, NombreConstante)
Crea los parametros de salida
Me.fCrearParametroUSP("@Valor", VarChar, 1000,Output)
Ejecuta el procedimiento
Return Me.fEjecutarUSP("@Valor")
En rojo os pongo la linea conflictiva. En la base de datos está dada de alta como VarChar2 de 1000. En la llamada indico que es VarChar de 1000.
Como es lógico me devuelve una cadena de 1000 aunque el contenido de la cadena no tiene mas de 27 caracteres.
Despues del rollo os comento mi problema. No se por que extraña razón si recupera la cadena tal cual de la bd, no me funciona un link a una url.
La cadena la recupero en una variable de tipo string llamada gEntorno.
La longitud es gEntorno.length = 1000
Necesitaría que me devolviera la cadena con una longitud igual al contenido de ella, es decir si recupero 'hola', gEntorno.length = 4
Es como si el resto de espacio que hay desde el final de la cadena hasta los 1000 caracteres, lo rellenara con algo que no son espacios pq uso la funcion Trim y le da lo mismo.
Sin embargo si pongo gEntorno.Substring(0,5) funciona correctamente.
¿Alguna idea?
Estoy desesperado.
Muchas gracias.