Processando...

Questões comentadas Polícia Civil-PI de Matérias Diversas | 149264

#149264
Banca
. Bancas Diversas
Matéria
Matérias Diversas
Concurso
Polícia Civil-PI
Tipo
Múltipla escolha
fácil

(1,0) 1 - 

Considere o trecho de código abaixo.

SQL> DECLARE
2 bonus NUMBER(8,2);
3 id_func NUMBER(6) := 1005;
4 BEGIN
5 SELECT salario * 0.10 INTO bonus
6 FROM tab_funcionarios
7 WHERE id_funcionario = id_func;
8 END;
9 /

Sabendo-se que a tabela foi criada no Oracle 11g e que o banco de dados opera em condições ideais, o código

Comentários da questão

  • - 19/11/2025 às 12:53

    Vamos analisar o código com atenção:

    DECLARE
      bonus NUMBER(8,2);
      id_func NUMBER(6) := 1005;
    BEGIN
      SELECT salario * 0.10 INTO bonus
      FROM tab_funcionarios
      WHERE id_funcionario = id_func;
    END;
    /
    

    Análise:

    1. Linguagem:
    • É PL/SQL, linguagem procedural do Oracle para blocos anônimos, variáveis e SQL embutido. ✅
    1. Atribuição de valor à variável id_func:
    id_func NUMBER(6) := 1005;
    
    • O operador := é correto em PL/SQL para atribuição.
    • O uso de = não seria correto. ❌
    1. SELECT ... INTO:
    SELECT salario * 0.10 INTO bonus
    FROM tab_funcionarios
    WHERE id_funcionario = id_func;
    
    • Recupera o salário do funcionário com id 1005 e multiplica por 0,10 → valor atribuído à variável bonus.
    • Funciona apenas se uma única linha for retornada; caso contrário, gera erro TOO_MANY_ROWS.
    1. Conclusão sobre execução:
    • O código irá copiar para bonus 10% do salário do funcionário cujo id é 1005.

    ✅ Resposta correta:

    a) está escrito em PL/SQL e copiará para bonus 10% do salário do funcionário cujo identificador é 1005.