PostgreSQL: Stored Procedures
Gabarito: letra A. Um stored procedure (procedimento armazenado) é um bloco de código armazenado no banco de dados, podendo ser escrito em SQL puro ou em linguagens procedurais como PL/pgSQL. A definição do enunciado se encaixa perfeitamente nesse conceito. As demais alternativas referem-se a linguagens ou padrões, e não ao bloco armazenado em si.
Alternativa A — ✅ Correta ⟵ GABARITO
Stored procedure é o termo genérico para blocos de código armazenados no banco de dados, que podem conter instruções SQL e lógica procedural. No PostgreSQL, são criados com CREATE PROCEDURE (a partir da versão 11) ou CREATE FUNCTION. Eles executam tarefas no servidor e podem ser invocados por aplicações.
Alternativa B — ❌ Incorreta
"SELECT procedure" não é um termo técnico reconhecido em PostgreSQL. Embora existam procedimentos que retornam conjuntos de resultados (como funções que retornam tabelas), o nome correto para o bloco armazenado é stored procedure, função armazenada ou simplesmente procedimento.
Alternativa C — ❌ Incorreta
PL/SQL é a linguagem procedural proprietária do Oracle Database. Embora o PostgreSQL tenha uma linguagem procedural chamada PL/pgSQL, a questão pergunta pelo bloco de código armazenado, e não pela linguagem usada para escrevê-lo.
Alternativa D — ❌ Incorreta
PL/pgSQL é a linguagem procedural padrão do PostgreSQL, usada para escrever stored procedures e funções. Contudo, o bloco armazenado em si é denominado stored procedure (ou função), e não "PL/pgSQL". Este último é apenas o nome da linguagem.
Alternativa E — ❌ Incorreta
SQL/PSM (Persistent Stored Modules) é uma parte do padrão SQL que define syntaxe para stored procedures e funções. Embora o PostgreSQL implemente boa parte do padrão, o termo mais comum e amplamente utilizado no contexto do PostgreSQL é "stored procedure" (ou "procedimento armazenado"). A banca cobra o nome usual no dia a dia do banco.
Gabarito: letra A — stored procedure.