Questões comentadas Polícia Civil-PI de Matérias Diversas | 149264
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:
- Linguagem:
- É PL/SQL, linguagem procedural do Oracle para blocos anônimos, variáveis e SQL embutido. ✅
- 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. ❌
- 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.
- Conclusão sobre execução:
- O código irá copiar para
bonus10% 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.