Questão nº 22

Questão de Tecnologia da Informação · FCC TRT15 2024 (nº 22)

FCC2024Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Dver comentário ↓

Considere que exista um banco de dados PostgreSQL aberto e funcionando em condições ideais, e que a tabela t_processos exista e esteja corretamente preenchida com valores adequados. Neste contexto, observe a função abaixo.

CREATE FUNCTION atualizar_status_processo(num_processo VARCHAR) RETURNS INTEGER AS $$
DECLARE
    total INTEGER;
BEGIN
    UPDATE t_processos
    SET status_processo = 'Encerrado'
    WHERE numero_processo = num_processo;
    SELECT COUNT(*) INTO total FROM t_processos WHERE status_processo = 'Encerrado';
    RETURN total;
END;
$$ LANGUAGE plpgsql;

Em condições ideais, esta função seria corretamente chamada utilizando-se o comando:

Resposta comentada

Gabarito Alternativa D

Para chamar uma função no PostgreSQL que retorna um valor, você a utiliza como parte de uma instrução SELECT, como se fosse uma coluna ou uma expressão.

  • (A) Incorreta: O comando CALL é utilizado para executar procedimentos (introduzidos no PostgreSQL 11), não funções. A estrutura fornecida é uma FUNCTION.
  • (B) Incorreta: O comando EXECUTE é usado para executar SQL dinâmico (uma string de comando) ou em outros sistemas de banco de dados para chamar rotinas, mas não é a forma padrão para chamar uma função PL/pgSQL diretamente no PostgreSQL.
  • (C) Incorreta: Embora este bloco DO $$...$$ execute a função, o comando PERFORM é usado dentro de blocos PL/pgSQL para executar uma função ou consulta e descartar seu resultado. Como a função atualizar_status_processo retorna um INTEGER, a forma mais adequada de chamá-la e visualizar seu retorno seria com SELECT. Além disso, DO $$...$$ é um bloco anônimo, não uma chamada direta da função.
  • (D) Correta: Esta é a forma padrão e mais idiomática de chamar uma função no PostgreSQL que retorna um valor. O comando SELECT exibirá o valor inteiro retornado pela função.
  • (E) Incorreta: O comando EXEC não é um comando válido para chamar funções diretamente no PostgreSQL. É comum em outros sistemas de banco de dados, como o SQL Server.
    • Armadilha da banca (distrator mais tentador): As alternativas (A) e (E) são as mais tentadoras porque CALL e EXEC são comandos comuns para executar rotinas em outros sistemas de banco de dados (como SQL Server ou Oracle). A armadilha reside em confundir a sintaxe de chamada de funções e procedimentos entre diferentes bancos de dados ou em não distinguir claramente entre FUNCTION e PROCEDURE no PostgreSQL. Lembre-se: FUNCTION com SELECT, PROCEDURE com CALL.

Fonte: FCC TRT15 2024 Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 001). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho