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.

Cómo lidiar con “La evaluación de expresiones no es compatible” en Debezium?

Estoy probando Debezium con una conexión a Oracle por primera vez.

Obtengo No se puede analizar el valor predeterminado de la columna '"MYUSER"."ISEQ$$_475890".nextval' al tipo '2'. La evaluación de expresiones no es compatible. (io.debezium.connector.oracle.OracleDefaultValueConverter)

En una tabla que estoy probando hay dos columnas destacadas: la primera es INTEGER generado de forma predeterminada en nulo como identidad (comenzar por 90000000). Esta es una columna generada, no un valor predeterminado en sí. Me pregunto si utiliza una secuencia y un valor predeterminado en segundo plano, aunque estrictamente hablando es generado y no un valor predeterminado. Otra columna utiliza un valor predeterminado de SYSDATE, que es un valor predeterminado real, pero no una secuencia.

Curiosamente, no veo nada en la documentación del conector Oracle ni en general que explique cuáles son las restricciones del valor predeterminado o cómo puedo solucionarlo. ¿Alguien puede ayudarme?

(Compartido en varios foros: Cross-posted)

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que estás encontrando un problema con los valores predeterminados de las columnas de Oracle mientras usas Debezium por primera vez. El mensaje de error “No se puede analizar el valor predeterminado de la columna…” sugiere que Debezium no puede analizar el valor predeterminado de una columna en particular.

    Has mencionado dos columnas destacadas en una tabla que estás intentando, una de las cuales es una columna generada usando una secuencia y la otra utiliza un valor predeterminado de SYSDATE. Sin embargo, no has proporcionado ninguna información sobre el esquema de la tabla o la configuración de Debezium que estás utilizando.

    Según la documentación de Debezium para el conector de Oracle, admite la mayoría de los tipos de columnas y estructuras de datos de Oracle. Sin embargo, algunas características como los valores predeterminados y las restricciones CHECK tienen algunas limitaciones debido a limitaciones en el controlador JDBC de Oracle.

    En tu caso, parece que Debezium no puede analizar el valor predeterminado para la columna. Una solución alternativa para este problema podría ser modificar la definición de la columna eliminando el valor predeterminado, especialmente si la columna tiene un valor generado basado en una secuencia.

    Alternativamente, puedes intentar usar una implementación personalizada de la clase OracleDefaultValueConverter para manejar mejor los valores predeterminados. Sin embargo, esto requeriría un esfuerzo de desarrollo y pruebas.

    Es recomendable consultar a la comunidad de Debezium o plantear un problema en el repositorio GitHub de Debezium para obtener soporte adicional y orientación sobre este problema.

Comments are closed.