¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Optimización de consultas SQL en ABAP para mejorar el rendimiento de tu aplicación

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 10 Vistas
0
Cargando...
TRY.
        EXEC SQL.
          OPEN dbcur FOR
            SELECT  B.SCI_CART_NO
                    B.SCI_MATL_NO
                    B.SCI_QTY
                    B.SCI_RCV_PLANT
                    B.SCI_RCV_STRG_LOC
                    C.SCM_FOD_NO
                    D.saa_category
                    D.SAA_ASGND_TO
                   FROM   T_SHOPPING_CART_ITEM  B,
                          T_SHOPPING_CART_MANF  C,
                          T_SC_ACCT_ASGNMT  D,
                   WHERE C.SCM_CART_NO = B.SCI_CART_NO
                   AND   D.SAA_CART_NO = B.SCI_CART_NO
                   AND   B.SCI_CART_NO = :t_wa_aufk_cobrb-scm_cart_no

        ENDEXEC.
      CATCH cx_sy_native_sql_error INTO t_exc_ref.
        w_error_text_oc = t_exc_ref->get_text( ).
        MESSAGE w_error_text_oc TYPE 'E'.
    ENDTRY.
TRY.
        DO.

          EXEC SQL.
            FETCH NEXT dbcur INTO :t_wa_ora-SCI_CART_NO,
                                  :t_wa_ora-SCI_MATL_NO,
                                  :t_wa_ora-SCI_QTY,
                                  :t_wa_ora-SCI_RCV_PLANT,
                                  :t_wa_ora-SCI_RCV_STRG_LOC,
                                  :t_wa_ora-SCM_FOD_NO,
                                  :t_wa_ora-saa_category,
                                  :t_wa_ora-SAA_ASGND_TO
          ENDEXEC.

          IF sy-subrc <> 0.
            EXIT.
          ELSE.
            t_wb_ora-sci_cart_no      = t_wa_ora-sci_cart_no.
            t_wb_ora-sci_matl_no      = t_wa_ora-    
            
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Omitiría la coma aquí:

T_SC_ACCT_ASGNMT  D,

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

¿Tienes un número de Ora-Err para esto?

a primera vista parece estar bien. Podrías quitar la columna del SELECT y FETCH y probar si es el problema

(o cualquier otra columna)

por favor, lee este documento sobre los mapeos de tipos de datos de Oracle / ABAP:

http://help.sap.com/saphelp_nw04/helpdata/en/a3/74caa1d9c411d1950e0000e8353423/frameset.htm

adiós

yk

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Thanx YukonKid

Se resolvió el error ORA-00923 en SQL, pero al llegar a la siguiente parte está devolviendo el valor de retorno 4

No se puede identificar cuál podría ser la razón

EXEC SQL.
            FETCH NEXT dbcur INTO :t_wa_ora-SCI_CART_NO,
                                  :t_wa_ora-SCI_MATL_NO,
                                  :t_wa_ora-SCI_QTY,
                                  :t_wa_ora-SCI_RCV_PLANT,
                                  :t_wa_ora-SCI_RCV_STRG_LOC,
                                  :t_wa_ora-SCM_FOD_NO,
                                  :t_wa_ora-saa_category,
                                  :t_wa_ora-SAA_ASGND_TO
          ENDEXEC.

En la base de datos de Oracle, SCI_CART_NO (Número-10), SCI_MATL_NO (Varchar2 - 18), SCI_QTY (Número -14,3) , SCI_RCV_PLANT (Varchar2- 4), SCI_RCV_STRG_LOC (Varchar2- 5), SCM_FOD_NO (Varchar2-12), saa_category (Varchar2- 1), SAA_ASGND_TO (Varchar2 -20) están definidos

y en el programa he definido

types: begin of ty_ora,
        sci_cart_no(10) type n,
        sci_matl_no(18) type c,
        sci_qty(16)     type p decimals 3,       
        sci_rcv_plant(4) type c,
        sci_rcv_strg_loc(5) type c,
        scm_fod_no(12)  type c,
        saa_category(1) type c,
        saa_asgnd_to(20) type c,        end of ty_ora.
data : t_ora type standard table of ty_ora initial size 0.
data : t
        
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola,

En SQL nativo, no olvides separar la lista de SELECT con ", "

SELECT  B.SCI_CART_NO      ,
                      B.SCI_MATL_NO ,
                      B.SCI_QTY      ,
                      B.SCI_RCV_PLANT ,
                      B.SCI_RCV_STRG_LOC ,
                      C.SCM_FOD_NO ,
                      D.saa_category ,
                      D.SAA_ASGND_TO
                     FROM   T_SHOPPING_CART_ITEM  B,
                            T_SHOPPING_CART_MANF  C,
                            T_SC_ACCT_ASGNMT  D
                     WHERE C.SCM_CART_NO = B.SCI_CART_NO
                     AND   D.SAA_CART_NO = B.SCI_CART_NO
                     AND   B.SCI_CART_NO = :t_wa_aufk_cobrb-scm_cart_no

...

adiós

yk

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?