Considere o trecho de código abaixo.       SQL> DECLARE ...

Próximas questões
Com base no mesmo assunto
Q583616 Banco de Dados
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 
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

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

Para resolver essa questão, é essencial entender a sintaxe e a funcionalidade da linguagem PL/SQL, usada no banco de dados Oracle. Este bloco PL/SQL é uma estrutura básica com a declaração de variáveis, uma consulta que atribui um valor a uma variável e o terminador do bloco.

A linha "DECLARE" indica o início de um bloco que permite a declaração de variáveis e, neste caso, duas variáveis são declaradas: bonus como um número com duas casas decimais e id_func como um número que já recebe o valor 1005.

No bloco "BEGIN ... END", há uma consulta SQL que calcula 10% (salario * 0.10) do salário do funcionário e armazena o resultado na variável bonus. A cláusula INTO é usada para atribuir o resultado da consulta a uma variável em PL/SQL.

O filtro na consulta "WHERE id_funcionario = id_func" garante que apenas o salário do funcionário com identificador 1005 seja utilizado. A comparação usa o operador de igualdade =, que é o correto para comparações em SQL, enquanto o operador := é usado para atribuições em PL/SQL, como visto na declaração de id_func. A ausência de erros de sintaxe nesta estrutura confirma que a alternativa A é a resposta correta.

O bloco é finalizado com "END;" e a barra "/" na linha seguinte é usada para executar o bloco PL/SQL no SQL*Plus, que é um ambiente de linha de comando do Oracle.

Em resumo, o código executa exatamente o que a alternativa A descreve: ele está escrito na linguagem PL/SQL do Oracle e calcula um bônus de 10% do salário do funcionário com ID 1005, armazenando o resultado na variável bonus.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo