Questões de Concurso sobre Blocos PL/SQL

 
 
Disciplina
Assunto 1
Banca
Instituição
Cargo
Ano
Carreira
Área de formação
Escolaridade
Dificuldade
 
Comentários:
Professores
Alunos
Meus Comentários
Vídeo
 
Minhas questões:
Resolvidas
Não resolvidas
Certas
Erradas
 
Tipo de questão:
Certo e errado
Múltipla escolha
Incluir questões:
Anuladas
Desatualizadas
 
Questões:
Todas as questões
 
Filtro simplificado
 
Questões
Todas as questões
 
13 questões encontradas
Questões por página
20
Mais recentes
 

Durante a construção de um banco de dados em Oracle, um Técnico de TI precisa registrar uma regra simples em um bloco anônimo PL/SQL para validar um parâmetro e gravar mensagens de auditoria. Com base no enunciado, a estrutura que representa CORRETAMENTE um bloco anônimo é:


A

CREATE … BEGIN … END;


B

IF … THEN … ELSE … END;


C

DECLARE … BEGIN … END;


D

BEGIN … FUNCTION … END;

Em um sistema corporativo executado sobre Oracle Database, a equipe de desenvolvimento implementou uma rotina em PL/SQL para registrar auditoria de alterações em uma tabela crítica. A rotina deveria gravar informações em uma tabela de log mesmo quando a transação principal fosse posteriormente desfeita por erro de regra de negócio. Durante a revisão técnica, discutiu-se o uso de blocos PL/SQL, tratamento de exceções, controle transacional e possíveis efeitos colaterais de commits dentro de rotinas chamadas por outras transações. De acordo com o caso, é CORRETO afirmar que:


A

Um bloco PL/SQL não pode conter comandos SQL de manipulação de dados, pois sua finalidade é apenas controlar fluxo procedural, cabendo exclusivamente ao SQL externo executar INSERT, UPDATE e DELETE.


B

O uso de COMMIT dentro de qualquer procedure PL/SQL é sempre recomendado para garantir atomicidade, pois impede que erros posteriores da aplicação desfaçam alterações já validadas no mesmo contexto transacional.


C

O tratamento de exceções em PL/SQL desfaz automaticamente todas as alterações realizadas no bloco, mesmo sem comando explícito de ROLLBACK, pois toda exceção provoca reversão integral da sessão corrente.


D

Uma transação autônoma pode ser utilizada em PL/SQL para registrar informações de auditoria com controle transacional independente da transação chamadora, mas seu uso exige cautela para não comprometer consistência lógica, rastreabilidade e semântica esperada da operação principal.

Considere uma tabela pedido que possui as colunas cliente e produto no seguinte trecho de código escrito em PL/SQL. O que acontecerá após executá-lo?


SELECT * FROM (

SELECT cliente, produto

FROM pedido

)

PIVOT (

COUNT(produto)

FOR produto IN (123, 124, 125)

)

ORDER BY cliente;


A

Apresenta uma linha para cada cliente e uma coluna para cada produto da cláusula IN com a contagem de cada produto por cliente.


B

Exibe uma linha para cada produto da cláusula IN contendo a contagem de produtos.


C

Exibe uma linha para cada produto da cláusula IN contendo a contagem de produtos, bem como uma linha abaixo com o subtotal por cliente.


D

Mostra a contagem de produtos da cláusula IN em uma única linha e o subtotal por cliente em uma linha abaixo.


E

Apresenta erro de sintaxe.

PL/SQL é uma linguagem processual projetada especificamente para incluir instruções SQL em sua sintaxe. O recurso denominado PL/SQL Table faz uso de dados intrínsecos por meio de vetores homogêneos. Qual comando é responsável por essa estrutura?


A

Type.


B

Def.


C

Declare.


D

Cursor.

A programação em blocos é uma maneira lúdica de se aprender programação porque elimina muitos dos desafios que vêm com a codificação tradicional.


São elementos da programação em blocos:


1. listas

2. vetores

3. variáveis e operadores

4. estruturas de decisão e de repetição


Assinale a alternativa que indica todas as afirmativas corretas.


A

São corretas apenas as afirmativas 1 e 3.


B

São corretas apenas as afirmativas 2 e 4.


C

São corretas apenas as afirmativas 1, 2 e 3.


D

São corretas apenas as afirmativas 1, 3 e 4.


E

São corretas apenas as afirmativas 2, 3 e 4.

A PL/SQL é uma linguagem estruturada em blocos de código e, assim como a SQL, ela aceita diversos tipos de dados, como numéricos, strings, datas. Assinale a alternativa que se refere à palavra chave que se refere às instruções que são executadas quando o bloco é executado:


A

FUNCTION.


B

BEGIN.


C

DECLARE.


D

PROCEDURE.


E

WITH.

Um desenvolvedor está criando um script PL/SQL para automatizar a atualização de preços em uma tabela de produtos. A tabela Produtos contém as colunas ProdutoID, Nome, PrecoAtual e CategoriaID. Considerando a necessidade de aplicar um aumento de 10% apenas aos produtos da categoria 5, qual bloco de código PL/SQL abaixo realiza essa operação corretamente?


A

BEGIN

FOR produto IN (SELECT * FROM Produtos WHERE

CategoriaID = 5)

LOOP

UPDATE Produtos SET PrecoAtual = PrecoAtual * 1.1

WHERE ProdutoID = produto.ProdutoID;

END LOOP;

END;


B

UPDATE Produtos

SET PrecoAtual = PrecoAtual * 1.1

WHERE CategoriaID = 5;


C

DECLARE

cur_prod CURSOR FOR SELECT ProdutoID FROM

Produtos WHERE CategoriaID = 5;

BEGIN

FOR produto IN cur_prod

LOOP

UPDATE Produtos SET PrecoAtual = PrecoAtual *

1.10 WHERE ProdutoID = produto.ProdutoID;

END LOOP;

END;


D

BEGIN

UPDATE Produtos

SET PrecoAtual = SELECT PrecoAtual * 1.1

FROM Produtos WHERE CategoriaID = 5;

END;

Um desenvolvedor precisa criar um bloco PL/SQL que insere novos registros em uma tabela Clientes, que inclui as colunas ClienteID, Nome, Email e DataCadastro. Caso um registro com o mesmo Email já exista, uma exceção customizada deve ser levantada, indicando que o e-mail já está em uso.


DECLARE

e_email_em_uso EXCEPTION;

PRAGMA EXCEPTION_INIT(e_email_em_uso, -20001);

BEGIN

INSERT INTO Clientes(ClienteID, Nome, Email, DataCadastro)

VALUES (clienteSeq.NEXTVAL, 'Nome do Cliente',

'[email protected]', SYSDATE);

EXCEPTION

WHEN DUP_VAL_ON_INDEX THEN

RAISE_APPLICATION_ERROR(-20001, 'Email já está em uso.')

END;


Considerando esses requisitos, qual dos seguintes blocos PL/SQL atende melhor à necessidade?


A

Utiliza a exceção DUP_VAL_ON_INDEX para capturar a tentativa de inserção de um e-mail duplicado, lançando e_email_em_uso com uma mensagem customizada.


B

Cria um trigger BEFORE INSERT na tabela Clientes para verificar a existência do e-mail e, em caso positivo, levanta a exceção e_email_em_uso.


C

Implementa uma consulta SELECT antes do INSERT para verificar a existência do e-mail. Se encontrado, levanta a exceção e_email_em_uso usando RAISE_APPLICATION_ERROR.


D

Emprega um bloco BEGIN ... END sem tratamento de exceção, assumindo que a restrição de unicidade no banco de dados previne a inserção de e-mails duplicados automaticamente.

Aplicações em três camadas (3-Tier) possuem um padrão de arquitetura que fornece uma divisão entre as funcionalidades envolvidas na manutenção e apresentação de uma aplicação. Assinale a alternativa correta que corresponda às três camadas desse padrão.


A

Apresentação, negócio e dados


B

Configuração, usuário e arquivo


C

Regra de negócio, interface e configuração


D

Configuração, servidor e arquivo

A arquitetura multicamada mais comumente utilizada na web é a de quatro camadas (4-Tier), composta de: camada de dados; camada de rede; camada de negócio; e camada de apresentação.


C
Certo

E
Errado

A arquitetura em camadas de um banco de dados prevê diferentes níveis que permitem ao projetista começar com uma visão mais abstrata dos dados e prosseguir em detalhes até sua implementação. Quanto aos níveis de abstração de dados, avalie as sentenças que se seguem:

I. O modelo conceitual é uma perspectiva dos usuários finais, podendo representar os diferentes subconjuntos de dados; é independente do software e hardware.

II. O modelo interno é uma representação dos dados conforme vistos pelo SGBD, utiliza as estruturas suportadas pelo banco escolhido; é dependente do software e independente do hardware.

III. O modelo externo representa o nível que descreve como os dados são salvos em meios de armazenamento; é dependente do software e hardware.

É correto o que se afirma em:


A

II, apenas.


B

I e III, apenas.


C

II e III, apenas.


D

I, apenas.

Considere as seguintes afirmações, relativas à estrutura básica de um bloco PL/SQL.


I. A seção DECLARE é opcional e é utilizada para a declaração de variáveis, cursores, tipos e subprogramas, e outros elementos utilizados no programa.

II. O conteúdo entre BEGIN e END é uma seção obrigatória onde ficam as instruções procedimentais. Esta seção deve conter pelo menos uma linha de código executável, que pode ser apenas o comando NULL para indicar que nada deve ser executado.

III. A seção EXCEPTION é opcional e é onde ficam as instruções de tratamento de erro.


Quais estão corretas?


A

Apenas I.


B

Apenas II.


C

Apenas III.


D

Apenas I e III.


E

I, II e III.

No desenvolvimento de aplicações cliente-servidor, como os sites, é comum a utilização da arquitetura multicamadas. No modelo de arquitetura


A

MVC, que é o principal modelo de arquitetura em 3 camadas, as operações de acesso ao banco de dados são implementadas na camada de Controle.


B

3-tier o fluxo de comunicação entre as camadas é triangular, ou seja, todas as camadas podem se comunicar umas com as outras diretamente.


C

2-tier o banco de dados e toda a lógica da aplicação, incluindo regras de negócio, são executados na camada de dados no servidor, e apenas os arquivos de apresentação, são executadas no cliente.


D

3-tier, para toda a alteração no banco de dados no servidor, a aplicação precisa ser alterada em todas as máquinas cliente.


E

3-tier as regras de negócio são implementadas na Camada de Negócio, já no padrão MVC, no grupo Model.

 
 
Gerar simulado