¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Descubra como usar a declaração SELECT SINGLE em ABAP para verificar a existência de uma linha em uma tabela de banco de dados.

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 48 Vistas
0
Cargando...
Há algum tempo, o ABAP me surpreendeu com uma característica interessante. Durante uma revisão de código, vi uma declaração SELECT interessante. Aqui está a declaração SELECT. Para fins de demonstração, alterei um pouco a declaração.
SELECT SINGLE 'X'
       FROM seoclass
       WHERE clsname = 'CL_GUI_FRONTEND_SERVICES'
       INTO @data(x).

CHECK sy-subrc = 0.

Imediatamente notei o "X" após o termo "SINGLE". Não tinha visto essa combinação antes. Ou não conseguia lembrar. De qualquer forma, ainda não tinha usado essa sintaxe.

Por curiosidade, perguntei a um colega. Ele tinha a resposta certa: Você pode verificar se há uma linha na tabela do banco de dados que atende à condição WHERE. Com essa dica, lembrei que tinha lido sobre isso um dia. Havia um blog de Horst Keller (e também o link para a ajuda online da SAP). A partir do 7.40 SP05, essa característica existe. Aqui está o exemplo da Ajuda online da SAP.
SELECT SINGLE @abap_true
       FROM scarr
       WHERE carrid = @carrier
       INTO @DATA(exists).

IF exists = abap_true.
  cl_demo_output=>display( |Carrier { carrier } existe em SCARR| ).
ELSE.
  cl_demo_output=>display( |Carrier { carrier } não existe em SCARR| ).
ENDIF.

Ao usar a variável "exists", fica muito mais claro o que a declaração significava. Devido ao desafio de escrever código fonte "fácil de entender", então tentei o seguinte exemplo.
CONSTANTS entry_exists TYPE abap_bool VALUE abap_true.

SELECT SINGLE @entry_exists
       FROM seoclass
       WHERE clsname = 'CL_GUI_FRONTEND_SERVICES'
       INTO @DATA(answer_from_db).

IF answer_from_db = entry_exists.
  WRITE 'Entrada existe.' COLOR COL_POSITIVE.
ELSE.
  
                
                
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

Sin respuestas

No hay respuestas para mostrar No hay respuestas para mostrar Se el primero en responder

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?