¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Confusão sobre o comprimento dos dados no SAP: Como definir corretamente variáveis em ABAP?

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 2 Vistas
0
Cargando...

Olá,

Executei esta declaração: DATA x(2) TYPE i value 234.

Pensei que o valor de x deveria ser 23, porque o defini com um comprimento de 2 bytes.

Na ajuda do sap, descobri que o comprimento de um inteiro é 4. Mas posso definir DATA x(5).

Estou um pouco confuso.

Obrigado,

Efren

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Não confunda o tipo "I" inteiro, armazenado em modo binário, com o tipo "N" armazenado em modo de caracteres.

23231234 está armazenado

- "01627B02" em binário/inteiro - TIPO I

- "23231234" em numc/caractere não unicode - TIPO N em um sistema não Unicode

- "0031003200330034" em numc/caractere unicode - TIPO N em um sistema Unicode

Observações:

- O TIPO N permite uma declaração de comprimento.

- O TIPO I permite uma faixa de -2147483648 a +2147483647 (4294967296 valores diferentes 2^32, sem contar o sinal negativo).

Saudações,

Raymond

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

Correto.

Mas quando defino DATA x TYPE com o valor 23231234, o valor de x não deveria ser 2323? Porque o comprimento é de 4, não?

Obrigado.

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

Apenas faça uma verificação de sintaxe (não uma ativação) e você receberá a mensagem "Comprimento da especificação não permitido com o tipo "I".", Aqui o editor permite uma entrada inválida, apenas emitindo um aviso. Como o comprimento do inteiro é sempre de 4 bytes, seus (2) ou (5) são ignorados pelo compilador. (se deseja fornecer um comprimento, use um TIPO "N" onde você obtém um byte por dígito, o que você estava esperando erroneamente para inteiros armazenados em binário)

Cumprimentos,

Raymond

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

Apenas faça uma verificação de sintaxe (não uma ativação) e você receberá a resposta "Comprimento especificado não permitido com o tipo "I"". Aqui o editor permite uma entrada inválida, apenas emitindo um aviso. Como o comprimento do inteiro é sempre de 4 bytes, seus (2) ou (5) são ignorados pelo compilador. (se desejar especificar um comprimento, use um TIPO "N" onde você obtém um byte por dígito, o que você estava esperando erroneamente para inteiros armazenados em binário)

Cumprimentos,

Raymond

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?