Tengo los 2 siguientes programas de prueba, los cuales solon varian en el uso o no de una variable:
...
open dbcursor for
SELECT *
FROM PA0002
WHERE pernr = 00000011.
...
Programa 1
Programa 2
El primer programa se ejecuta correctamente, pero el segundo no. Alguien sabria el porque?
Muchas gracias.
...
open dbcursor for
SELECT *
FROM PA0002
WHERE pernr = 00000011.
...
Programa 1
DATA: l_s TYPE i,
st TYPE string,
lv_pernr TYPE persno,
ls TYPE pa0002,
lt TYPE STANDARD TABLE OF pa0002.
CLEAR l_s.
lv_pernr = 00000011.
TRY.
exec sql.
open dbcursor for
SELECT *
FROM PA0002
WHERE pernr = 00000011.
endexec.
DO.
EXEC SQL.
FETCH NEXT dbcursor INTO :ls
ENDEXEC.
IF sy-subrc EQ 0.
APPEND ls TO lt.
ELSE.
exit.
ENDIF.
ENDDO.
EXEC SQL.
CLOSE dbcursor
ENDEXEC.
CATCH CX_SY_NATIVE_SQL_ERROR.
WRITE 'E'.
ENDTRY.
DESCRIBE TABLE lt LINES l_s.
WRITE l_s.
st TYPE string,
lv_pernr TYPE persno,
ls TYPE pa0002,
lt TYPE STANDARD TABLE OF pa0002.
CLEAR l_s.
lv_pernr = 00000011.
TRY.
exec sql.
open dbcursor for
SELECT *
FROM PA0002
WHERE pernr = 00000011.
endexec.
DO.
EXEC SQL.
FETCH NEXT dbcursor INTO :ls
ENDEXEC.
IF sy-subrc EQ 0.
APPEND ls TO lt.
ELSE.
exit.
ENDIF.
ENDDO.
EXEC SQL.
CLOSE dbcursor
ENDEXEC.
CATCH CX_SY_NATIVE_SQL_ERROR.
WRITE 'E'.
ENDTRY.
DESCRIBE TABLE lt LINES l_s.
WRITE l_s.
DATA: l_s TYPE i,
lv_pernr,
ls TYPE pa0002,
lt TYPE STANDARD TABLE OF pa0002.
CLEAR l_s.
lv_pernr = 00000011.
TRY.
exec sql.
open dbcursor for
SELECT *
FROM PA0002
WHERE pernr = :lv_pernr.
endexec.
DO.
EXEC SQL.
FETCH NEXT dbcursor INTO :ls
ENDEXEC.
IF sy-subrc EQ 0.
APPEND ls TO lt.
ELSE.
exit.
ENDIF.
ENDDO.
EXEC SQL.
CLOSE dbcursor
ENDEXEC.
CATCH CX_SY_NATIVE_SQL_ERROR.
WRITE 'E'.
ENDTRY.
DESCRIBE TABLE lt LINES l_s.
WRITE l_s.
lv_pernr,
ls TYPE pa0002,
lt TYPE STANDARD TABLE OF pa0002.
CLEAR l_s.
lv_pernr = 00000011.
TRY.
exec sql.
open dbcursor for
SELECT *
FROM PA0002
WHERE pernr = :lv_pernr.
endexec.
DO.
EXEC SQL.
FETCH NEXT dbcursor INTO :ls
ENDEXEC.
IF sy-subrc EQ 0.
APPEND ls TO lt.
ELSE.
exit.
ENDIF.
ENDDO.
EXEC SQL.
CLOSE dbcursor
ENDEXEC.
CATCH CX_SY_NATIVE_SQL_ERROR.
WRITE 'E'.
ENDTRY.
DESCRIBE TABLE lt LINES l_s.
WRITE l_s.
Muchas gracias.
Comentario