Considere que exista um banco de dados PostgreSQL aberto e f...
Em condições ideais, esta função seria corretamente chamada utilizando-se o comando:
Comentários
Veja os comentários dos nossos alunos
✅ Alternativa correta: D
A função atualizar_status_processo é definida com RETURNS INTEGER, ou seja, retorna um valor.
Em PostgreSQL, funções que retornam valores devem ser chamadas usando SELECT.
A) ❌ Errado no PostgreSQL nesse contexto.
CALL é usado para procedures (sem retorno), ou seja, quando a função retorna VOID.
Nossa função retorna um INTEGER, então SELECT é obrigatório.
B) ❌ EXECUTE em PostgreSQL é usado dentro de blocos dinâmicos PL/pgSQL, não diretamente no SQL.
Não é usado fora de blocos DO, FUNCTION ou PROCEDURE.
C) ❌ PERFORM é usado para ignorar o valor de retorno, o que não é o esperado aqui, pois queremos obter o total de processos encerrados.
Além disso, o uso de DO é mais indicado para scripts internos e não para chamadas simples de função.
E) ❌ Sintaxe incorreta e mistura de dialetos:
- EXEC é típico do SQL Server, não do PostgreSQL.
- As aspas também estão erradas.
Fonte: ChatGPT.
Funções que retornam valores (como esta, que retorna INTEGER) são chamadas com SELECT.
Alternativas:
- (A) CALL: só é usado com procedures, não com funções que retornam valores.
- (B) EXECUTE: usado dentro de comandos dinâmicos.
- (C) DO...PERFORM: possível, mas desnecessariamente complexo; PERFORM é usado para funções sem retorno ou cujo retorno será ignorado.
- (E) EXEC: sintaxe inválida em PostgreSQL.
Portanto, gabarito: D
By Futur DEV Estável.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo