SóProvas


ID
361978
Banca
FUNRIO
Órgão
FURP-SP
Ano
2010
Provas
Disciplina
Banco de Dados
Assuntos

Os procedimentos relacionados, as funções, as variáveis e outras construções podem ser encapsuladas e armazenadas em uma estrutura específica para esta finalidade.Tal estrutura oferece aos administradores e desenvolvedores grande funcionalidade, permitindo organizar aquelas rotinas de forma mais flexível e controlada.

A que elemento do Oracle o texto se refere a

Alternativas
Comentários
  • procedimentos relacionados != procedimentos armazenados
    Na verdade, a questão não quis dizer uma única stored procedure (procedimento armazenado), ela quis dizer várias stored procedures relacionadas a uma mesma funcionalidade, por exemplo, agrupadas em uma única estrutura. 

    "as funções, as variáveis e outras construções": Aqui está o principal trecho que invalida a alternativa A, que foi a sua dúvida.
    Para criar uma stored procedure você usaria o comando CREATE STORED PROCEDURE.
    Enquanto para criar uma função você usaria o comando CREATE FUNCTION.
     
    Os comandos acima criam duas estruturas diferentes, e eu desconheço a possibilidade de você criar uma function dentro de uma stored procedure. 
    Se o trecho  "as funções, as variáveis e outras construções podem ser encapsuladas e armazenadas em uma estrutura específica para esta finalidade." estivesse correto, estaríamos dizendo que uma função (FUNCTION) pode ser encapsulada dentro de um procedimento (STORED PROCEDURE). Que eu saiba, isso não é permitido. Mas me corrijam se isso for possível. :-)

    Por isso, a alternativa que melhor se encaixa é C mesmo, pois trata de pacote.

    A criação de um pacote no Oracle se dá por meio da cláusula CREATE PACKAGE. No primeiro trecho você declara o pacote, é somente uma assinatura, um protótipo. 
    No segundo trecho, você de fato inclui o corpo (BODY) do pacote.

    Segue um exemplo mais simples. Observe que você pode colocar várias estruturas no pacote: procedures, functions, variáveis, cursores, etc.

     
    	CREATE OR REPLACE PACKAGE emp_admin AS
       PROCEDURE demitir_empregado (emp_id NUMBER); -- sobrecarga
       PROCEDURE demitir_empregado (emp_email VARCHAR2); -- sobrecarga
       FUNCTION admitir_empregado (nome VARCHAR2, email VARCHAR2, salario NUMBER, gerente_id NUMBER, departamento_id NUMBER) 
         RETURN NUMBER;
    END emp_admin;
     
     
    CREATE OR REPLACE PACKAGE BODY emp_admin AS
       
       PROCEDURE demitir_empregado (emp_id NUMBER) IS
       BEGIN
          DELETE FROM empregado WHERE empregado_id = emp_id;
       END demitir_empregado;
     
       PROCEDURE demitir_empregado (emp_email VARCHAR2) IS
       BEGIN
          DELETE FROM empregado WHERE email = emp_email;
       END demitir_empregado;
     
        FUNCTION admitir_empregado (nome VARCHAR2, email VARCHAR2, salario NUMBER, gerente_id NUMBER, departamento_id NUMBER) 
        RETURN NUMBER IS
          ...
     
    ...
    END emp_admin

    Crédidos: Carla Rodrigues carla.pump@gmail.com

  • Questão mal escrita...