FC ConcursosFC Concursos

Questão FC372888

Considere o bloco PL/SQL abaixo, em um ambiente Oracle em condições ideais. DECLARE vColNo colaborador.idColaborador%TYPE := 371; vAst colaborador.estrelas%TYPE := NULL; vSal colab

Linguagem SQL

FCC · 2020

Considere o bloco PL/SQL abaixo, em um ambiente Oracle em condições ideais.

 

DECLARE

vColNo colaborador.idColaborador%TYPE := 371;

vAst colaborador.estrelas%TYPE := NULL;

vSal colaborador.salario%TYPE;

BEGIN

 SELECT NVL(ROUND(salario/5000), 0) INTO vSal

 FROM colaborador WHERE idColaborador = vColNo;

 ...I...

 UPDATE colaborador SET estrelas = vAst

 WHERE idColaborador = vColNo;

 COMMIT;

END;

/

 

Para adicionar um asterisco na coluna estrelas para cada R$5000 do salário do funcionário (se o número for 10.000, existirão 2 asteriscos, por exemplo), a lacuna I acima deve ser preenchida por

  1. FOR i:=0 TO vSal.length STEP 1

    BEGIN

      vAst:= vAst + '*';

    END FOR;

  2. FOR i IN 1.. vSal

      LOOP

      vAst:= vAst ||'*';

      END LOOP;

  3. VAR i:=1

    WHILE(i <= vSal.lenght)

    BEGIN

      vAst:= vAst || '*';

      i++;

    END WHILE;

  4. FOR i:=0 TO vSal.lenght STEP 1

    LOOP

      vAst:= vAst + '*';

    END LOOP;

  5. FOR i IN 0.. vSal STEP 1

    BEGIN

      vAst:= vAst + '*';

    END;

Mostrar resposta e comentário

Gabarito

B

Comentário do professor

A opção apresentada usa corretamente o laço FOR na forma FOR i IN 1..vSal LOOP ... END LOOP;, que executa o corpo exatamente vSal vezes (a variável de controle i é implícita e não precisa ser declarada).

Dentro do laço, a atribuição vAst := vAst || '*' concatena um asterisco a cada iteração usando o operador de concatenação ||. Em Oracle, concatenar NULL com uma string resulta na própria string, por isso a inicialização de vAst como NULL não impede o funcionamento.

Como vSal foi obtido por \( \text{NVL(ROUND(salario/5000),0)} \), o laço adiciona um asterisco para cada \(R\$5000\) do salário (ex.: \(10000\rightarrow2\) iterações). Ao final, o UPDATE grava vAst em estrelas e o COMMIT persiste a alteração.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo