es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

ParameterCache.SetParameters no está populando los parámetros.

Hemos actualizado el cliente de Oracle de la versión 19 a la 11 y, después de eso, nuestra aplicación dejó de funcionar y arroja el error “Un OracleParameter con el nombre del parámetro ‘nombreparámetro’ no está contenido en esta OracleParameterCollection”.

Después de depurar, encontré un problema en las siguientes líneas:

command = database.GetStoredProcCommand(“nombre del procedimiento”);
parameterCache.SetParameters(command, database); // esta línea no carga los datos
Database.SetParameterValue(command, “nombreColumna”, “valorColumna”); // arroja error

Las líneas anteriores funcionaban correctamente con el cliente de Oracle 11, pero arrojan error con el cliente de Oracle 19. Se agradecerán cualquier sugerencia.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error “Un OracleParameter con el nombre de parámetro ‘nombreparámetro’ no está contenido en esta OracleParameterCollection” indica que el parámetro especificado no está presente en la colección de parámetros.

    Según el código proporcionado, parece que el problema puede estar relacionado con la actualización de la versión de Oracle. El código parece utilizar el bloque de aplicación de acceso a datos de Enterprise Library.

    Una posibilidad es que el cliente de Oracle 19 haya cambiado el comportamiento de algunas API o nombres de parámetros. Como resultado, el método SetParameters puede no poblar correctamente la colección de parámetros, lo que lleva al mensaje de error.

    Para resolver el problema, puedes intentar lo siguiente:

    1. Verifica la documentación y las notas de lanzamiento del cliente de Oracle 19 para ver si hay cambios que puedan afectar a tu código.
    2. Verifica nuevamente los nombres y tipos de parámetros para asegurarte de que coincidan con el esquema de la base de datos.

    3. Utiliza depuradores o registros para inspeccionar la colección de parámetros y ver si contiene los valores esperados.

    4. Intenta utilizar una versión diferente del proveedor Oracle Managed Data Access (ODP.NET) o del bloque de aplicación de acceso a datos de Enterprise Library para ver si eso resuelve el problema.

    En general, es importante probar cuidadosamente tu código después de una actualización del cliente de Oracle para detectar cualquier problema de compatibilidad de manera temprana.

Comments are closed.