FC ConcursosFC Concursos

Questão FC372892

Um programador deseja definir uma query SQL para retornar os valores das colunas salario e job_id para determinado id de funcionário, de forma que ela seja executada de acordo com

Linguagem SQL

FCC · 2019

Um programador deseja definir uma query SQL para retornar os valores das colunas salario e job_id para determinado id de funcionário, de forma que ela seja executada de acordo com os parâmetros que receber. Considerando a existência da tabela e dos campos indicados, no Oracle PL/SQL digitou o bloco de comandos abaixo.

 

..I..
    (p_id IN funcionarios.funcId%TYPE,
     p_salario OUT funcionarios.salario%TYPE,
     p_job OUT funcionarios.job_id%TYPE) IS
BEGIN
    SELECT salario, job_id
    INTO p_salario, p_job
    FROM funcionarios
    WHERE funcId = p_id;
END obter_dados
/

 

Completa adequadamente a lacuna I a instrução: CREATE

  1. FUNCTION obter_dados PARAMETERS
  2. OR REPLACE VIEW obter_dados
  3. OR REPLACE PROCEDURE obter_dados
  4. TRIGGER obter_dados
  5. STRUCTURE obter_dados
Mostrar resposta e comentário

Gabarito

Certo

Comentário do professor

A opção correta indica que o bloco é uma procedure, declarada com OR REPLACE PROCEDURE obter_dados, o que combina com o corpo apresentado.

Uma procedure não precisa de cláusula de return; ela devolve valores por parâmetros marcados como OUT. No código, os parâmetros têm tipos definidos com %TYPE e são preenchidos pela instrução SELECT ... INTO, que atribui os campos salario e job_id aos parâmetros de saída.

Sintaticamente, a declaração completa típica é: CREATE OR REPLACE PROCEDURE obter_dados ( ... ) IS, seguida do BEGIN...

Observe que o nome após END (END obter_dados) deve coincidir com a declaração inicial; esse padrão garante que a procedure compile e possa ser chamada passando o id e recebendo os valores via parâmetros OUT.

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

Continue aprendendo