Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Aula 01 - Incluindo clientes em uma tabela temporária - Função (Trim e Substring)

Bom dia, pessoal! Tudo bem? Fiquei com dúvida do uso da função Trim para puxar o último valor do loop gerado para a criação de um array. Código:

IF TRIM(RESTANTE) <> '' THEN

     INSERT INTO TABELA VALUE (**TRIM**(RESTANTE));

END IF

E do uso de Substring para retirada de valor no fim do Loop:

 SET RESTANTE = LISTA; 
 WHILE INSTR(RESTANTE,',') > 0 DO 
        SET POS = INSTR(RESTANTE,','); 
        SET NOME = LEFT(RESTANTE, POS-1);
        INSERT INTO TABELA VALUE (NOME);
        RESTANTE = **SUBSTRING**(RESTANTE, POS + 1);
  END WHILE;
1 resposta
solução!

Oi, Vinicius! Tudo bem com você?

A função TRIM é utilizada para remover espaços em branco no início e no fim de uma string. No código, ela está sendo usada para garantir que não seja inserido um valor vazio na tabela. Dessa forma, se ao final do loop, se ainda houver algum valor na variável RESTANTE, esse valor será inserido na tabela sem espaços extras. Imagine que, ao final do loop, a variável RESTANTE tenha o valor ' LUIS ' (com espaços extras no início e no fim). Usando o TRIM, você garante que esses espaços sejam removidos antes de inserir o valor na tabela.

Já a função SUBSTRING é usada para extrair uma parte específica de uma string. No código, ela está sendo utilizada para atualizar a variável RESTANTE, removendo o nome já processado e a vírgula que o segue. Imagine que você tem a variável RESTANTE com o seguinte valor:

RESTANTE = 'LUIS, MARIA, JOAO,'

A ideia é pegar cada nome, inserir na tabela e, em seguida, atualizar a variável RESTANTE para remover o nome que já foi processado. Exemplo:

SET RESTANTE = 'LUIS, MARIA, JOAO,';

WHILE INSTR(RESTANTE, ',') > 0 DO
    SET POS = INSTR(RESTANTE, ',');        -- POS = 5
    SET NOME = LEFT(RESTANTE, POS - 1);   -- NOME = 'LUIS'
    INSERT INTO TABELA VALUE (NOME);       -- Insere 'LUIS'
    RESTANTE = SUBSTRING(RESTANTE, POS + 1);  -- RESTANTE = ' MARIA, JOAO,'
END WHILE;

Resumidamente, a função SUBSTRING remove tudo que foi processado até a vírgula, permitindo que no próximo ciclo do loop você trabalhe com o próximo nome na lista. Essas funções são essenciais para manipular strings e garantir que todos os nomes sejam corretamente extraídos e inseridos na tabela temporária.

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado