← Questões de Banco de Dados

Banco de Dados · FURB · 2022

Questão comentada de Banco de Dados

Um pacote ou package no Oracle Database 12c é um objeto que agrupa variáveis, constantes, subprogramas, cursores e exceções, logicamente relacionados no PL/SQL. Considerando esse tema, analise as afirmações a seguir: I-Ao criar um pacote, não é permitido fazer referência a variáveis públicas de pacotes remotos. II-A cláusula AUTHID DEFINER, usada na criação do pacote, determina que um subprograma ou cursor pode ser executado com o privilégio de definidor. III-Um pacote sempre tem uma especificação na qual são declarados os itens públicos que podem ser referenciados de fora do pacote. É correto o que se afirma em:

Gabarito: A

No Oracle, package e quase como uma “caixa organizada” de PL/SQL: nele voce agrupa variaveis, constantes, cursores, excecoes e subprogramas que fazem sentido juntos. A grande ideia e esconder detalhes internos no corpo do package e expor so o que for util na especificacao, que funciona como a “vitrine” do pacote. A afirmacao III esta correta porque todo package tem especificacao. E na especificacao que ficam declarados os elementos publicos, ou seja, os que podem ser acessados de fora do pacote. O corpo guarda a implementacao e os itens privados. Essa divisao e classica em PL/SQL e aparece na documentacao oficial do Oracle Database. A afirmacao II tambem esta correta. A clausula AUTHID DEFINER faz com que os subprogramas do package executem com os privilegios do definidor, isto e, do dono do objeto. Em termos de prova, pense assim: quem chama nao leva a “carteirinha de acesso” no bolso; quem manda aqui e o definidor. E a afirmacao I tambem esta correta no contexto cobrado pela banca: ao criar um package, nao se faz referencia a variaveis publicas de packages remotos. Ou seja, o Oracle nao permite esse tipo de amarracao direta durante a criacao do pacote. Resultado: I, II e III estao certas, entao o gabarito e A.

Continue treinando

Questões relacionadas