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.

ORA-06502: PL/SQL: error numérico o de valor al usar TO_BINARY_DOUBLE con JDBC

Tengo un pequeño fragmento de código que obtiene datos y genera declaraciones SQL para insertarlos en una base de datos Oracle. Estas declaraciones se ejecutan a través de un controlador JDBC en el servidor de Oracle.

El problema al que me enfrento es que si estas declaraciones contienen una llamada a TODOUBLE, siempre fallan PARA MÍ y no para nadie más en mi equipo, que supuestamente tiene el mismo controlador y entorno que yo, lo cual es increíblemente extraño.

CREATE TABLE "SOME_TABLE" (
    "id" BINARY_DOUBLE NOT NULL,
    "double" BINARY_DOUBLE,
    PRIMARY KEY ("_id")
);

DECLARE
    "#value_id" BINARY_DOUBLE;
    "#value_double" BINARY_DOUBLE;
BEGIN
    "#value_id" := TO_BINARY_DOUBLE('0.0');
    "#value_double" := TO_BINARY_DOUBLE('1.2');

INSERT INTO "SOME_TABLE" ("_id", "double")
VALUES(
    "#value__id",
    "#value_double"
);
END;

Y el error:

No se puede ejecutar la declaración SQL por lotes: se produjo un error durante el lote: ORA-06502: PL/SQL: error numérico o de valor
ORA-06512: en la línea 5

Esperando que alguien pueda arrojar algo de luz sobre la fuente, o señalarme en la dirección correcta para intentar encontrarla.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema es específico de tu entorno, ya que el código se ejecuta correctamente para otros miembros de tu equipo. Una cosa que podrías intentar es verificar tu versión del controlador de JDBC y compararla con la versión utilizada por tus compañeros de equipo. Es posible que haya un problema de compatibilidad entre el controlador y tu entorno. Además, podrías verificar si hay alguna diferencia en las configuraciones del servidor Oracle entre tu entorno y el de tus compañeros de equipo. También vale la pena señalar que el mensaje de error sugiere que podría haber un problema con el valor numérico utilizado en la llamada a TO_BINARY_DOUBLE. Podrías intentar modificar los valores de entrada para ver si eso hace alguna diferencia. Por último, si ninguna de estas sugerencias ayuda, podría ser útil elevar el problema a un nivel de soporte más alto, como el soporte de Oracle o el departamento de TI de tu organización.

Comments are closed.