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.

¿OpenSQL utiliza aditivos que solo se pueden usar con una bandera de aritmética de punto fijo?

Sigo teniendo un mensaje de error para la selección a continuación. Lo que he hecho es crear una estructura global, luego declarar una estructura y una tabla en el programa como TYPE table, como se ve a continuación:


DATA: gt_add_data_08 TYPE TABLE OF zsd_s_z5_9910_9900_08,
gs_add_data_08 TYPE zsd_s_z5_9910_9900_08.

La selección en la que tengo problemas es la siguiente:


SELECT gt_add_data_08~bi_desc1,
gt_add_data_08~bi_desc2,
gt_add_data_08~herkl,
gt_add_data_08~herkl_t,
gt_add_data_08~tempb,
gt_add_data_08~tbtxt,
vbdpl~lfimg,
vbdpl~vrkme,
vbdpl-charg
INTO TABLE gs_add_data_08
FROM gt_add_data_08
INNER JOIN vbdpl ON
vbdpl~posnr = gt_add_data_08~posnr,
vbdpl~vbeln = gt_add_data_08~vbeln
WHERE vbdpl~spras = 'EN'.

La selección se supone que une dos tablas, por lo tanto gt_add_data_08 y vbdpl en gs_add_data_08, con la condición de que spras debe estar en inglés. El error que se me muestra es:

Esta instrucción Open SQL utiliza aditivos que solo se pueden utilizar con una bandera de aritmética de punto fijo habilitada (por ejemplo, expresión CASE, variables de host en expresiones, …)

¿Alguien puede saber dónde puede estar el problema que me muestra este error?

¡Gracias a todos de antemano!

Tags:  ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que se están utilizando aditivos que solo se pueden usar con la habilitación de la opción de aritmética de punto fijo en esta declaración Open SQL. Esto se refiere al uso de variables de host en expresiones, lo cual requiere que se agregue el aditivo FIXED-POINT ARITHMETIC a la declaración.

    Para resolver este error, debes modificar tu declaración SELECT para habilitar la opción de aritmética de punto fijo agregando FIXED-POINT ARITHMETIC después de la palabra clave SELECT.

    La declaración SELECT corregida debe lucir así:

    SELECT FIXED-POINT ARITHMETIC
           gt_add_data_08~bi_desc1,
           gt_add_data_08~bi_desc2,
           gt_add_data_08~herkl,
           gt_add_data_08~herkl_t,
           gt_add_data_08~tempb,
           gt_add_data_08~tbtxt,
           vbdpl~lfimg,
           vbdpl~vrkme,
           vbdpl~charg
      INTO TABLE gs_add_data_08
      FROM gt_add_data_08
      INNER JOIN vbdpl ON
      vbdpl~posnr = gt_add_data_08~posnr AND
      vbdpl~vbeln = gt_add_data_08~vbeln
      WHERE vbdpl~spras = 'EN'.
    

    Asegúrate de que las columnas en la declaración SELECT coincidan con los campos correspondientes en las tablas ZSD_S_Z5_9910_9900_08 y VBDPL. Además, agrega el operador AND para relacionar múltiples condiciones en la cláusula ON de la consulta de unión.

    Esto debería resolver el error y ejecutar la declaración SELECT correctamente.

Comments are closed.