

Seu próximo nível começa aqui
Com a Assinatura Ilimitada, você tem tudo que precisa para sua aprovação.
Com a Assinatura Ilimitada, você combina prática, teoria e método em uma única assinatura com tudo que você precisa para sua aprovação.
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 é:
CREATE … BEGIN … END;
IF … THEN … ELSE … END;
DECLARE … BEGIN … END;
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:
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.
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.
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.
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;
Apresenta uma linha para cada cliente e uma coluna para cada produto da cláusula IN com a contagem de cada produto por cliente.
Exibe uma linha para cada produto da cláusula IN contendo a contagem de produtos.
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.
Mostra a contagem de produtos da cláusula IN em uma única linha e o subtotal por cliente em uma linha abaixo.
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?
Type.
Def.
Declare.
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.
São corretas apenas as afirmativas 1 e 3.
São corretas apenas as afirmativas 2 e 4.
São corretas apenas as afirmativas 1, 2 e 3.
São corretas apenas as afirmativas 1, 3 e 4.
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:
FUNCTION.
BEGIN.
DECLARE.
PROCEDURE.
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?
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;
UPDATE Produtos
SET PrecoAtual = PrecoAtual * 1.1
WHERE CategoriaID = 5;
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;
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?
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.
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.
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.
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.
Apresentação, negócio e dados
Configuração, usuário e arquivo
Regra de negócio, interface e configuração
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.
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:
II, apenas.
I e III, apenas.
II e III, apenas.
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?
Apenas I.
Apenas II.
Apenas III.
Apenas I e III.
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
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.
3-tier o fluxo de comunicação entre as camadas é triangular, ou seja, todas as camadas podem se comunicar umas com as outras diretamente.
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.
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.
3-tier as regras de negócio são implementadas na Camada de Negócio, já no padrão MVC, no grupo Model.