Questão de Banco de Dados — PL-SQL — FCC 2016
- Código
- fc028413
- Banca
- FCC
- Órgão
- CREMESP
- Ano
- 2016
- Nível
- Superior
- Cargo
- Analista de Tecnologia da Informação - Análise de Sistemas
- AII e IV.
- BI, II e IV.
- CI, II e III.
- DIII e IV.
- EI e III.
GabaritoE — I e III.
Gabarito: letra E. Apenas os itens I e III estão corretos. O item I está correto porque procedure é usado para executar uma ação e function para calcular e retornar um valor. O item III está correto porque subprogramas podem ser agrupados em pacotes PL/SQL, promovendo reutilização. Os itens II e IV são falsos.
Item | Afirmação | Correto? | Motivo |
|---|---|---|---|
I | Procedure realiza ação; função calcula e retorna valor | ✅ Sim | Distinção fundamental no PL/SQL |
II | Procedures e funções têm mesma estrutura e parâmetros (ex.: cláusula RETURN) | ❌ Não | Função tem cláusula RETURN obrigatória; procedure não |
III | Subprogramas podem ser agrupados em pacotes PL/SQL | ✅ Sim | Pacotes promovem organização e reutilização |
IV | Funções e procedures são armazenados não compilados; compilam só no backup | ❌ Não | São armazenados compilados; compilação ocorre na criação/alteração |
No PL/SQL, a distinção fundamental é: procedure é voltada para execução de ações (não retorna valor diretamente), enquanto function é criada para calcular e retornar um único valor. O material de apoio confirma: "FUNCTION: usado principalmente para calcular e retornar um valor. PROCEDURE: usado principalmente para executar uma ação." Portanto, o enunciado está correto.
Procedures e funções não possuem a mesma estrutura. A principal diferença é que a função obrigatoriamente utiliza a cláusula RETURN para especificar o tipo do valor retornado, enquanto a procedure não a utiliza. Além disso, os modos de parâmetros (IN, OUT, IN OUT) são comuns, mas a presença da cláusula RETURN torna a estrutura distinta. A afirmação de que têm "os mesmos parâmetros" é enganosa; a cláusula RETURN é um elemento exclusivo das funções.
Pacotes (packages) são objetos de esquema que agrupam logicamente tipos, variáveis e subprogramas PL/SQL, tornando o código mais organizado e reutilizável. O contexto do estudo afirma: "Packages ou pacotes são objetos de esquema que agrupam tipos PL/SQL logicamente relacionados, variáveis e subprogramas." Portanto, o item está correto.
Funções e procedures são armazenados no banco de dados em formato compilado, não não compilado. Quando criados ou alterados, o Oracle compila automaticamente o subprograma e armazena tanto o código-fonte quanto o código compilado (p-code). A compilação não ocorre apenas durante backup; ela é feita no momento da criação ou alteração do objeto, e a execução utiliza o código já compilado.
Conclusão: estão corretos apenas os itens I e III. Portanto, a alternativa que atende ao enunciado é a letra E.
Link permanente: /questoes/fc028413