FC ConcursosFC Concursos

Questão FC372906

Um Auditor digitou em um banco de dados Oracle, aberto e em condições ideais, a instrução PL/SQL: SELECT id, nome FROM cidadao WHERE id = '001' FOR UPDATE ORDER BY id; A cláusula F

Linguagem SQL

FCC · 2018

Um Auditor digitou em um banco de dados Oracle, aberto e em condições ideais, a instrução PL/SQL:


SELECT id, nome FROM cidadao WHERE id = '001' FOR UPDATE ORDER BY id;


A cláusula FOR UPDATE

  1. indica que todos os cidadãos que possuem o valor 001 no campo id poderão ter os dados modificados por qualquer usuário do banco de dados.
  2. altera o valor do campo id do registro selecionado para 001, independentemente do valor existente nesse campo.
  3. indica apenas que o Auditor está selecionando o cidadão que possui valor 001 no campo id para executar uma operação de alteração nos dados.
  4. bloqueia as linhas na tabela cidadao onde o valor do campo id é 001 para que somente o Auditor possa alterar. O bloqueio será liberado apenas depois da emissão de uma instrução ROLLBACK ou COMMIT.
  5. indica que os registros que possuem o valor 001 no campo id serão transferidos para a área de transferência do banco de dados onde poderão ser executadas operações de alteração de dados.
Mostrar resposta e comentário

Gabarito

D

Comentário do professor

A cláusula FOR UPDATE indica ao Oracle que as linhas retornadas pela consulta devem ser bloqueadas para alteração por outras sessões.


No comando em questão, somente as linhas da tabela cidadao que atendem a id = '001' serão travadas, garantindo que apenas a sessão do Auditor possa modificá‑las enquanto o bloqueio estiver ativo.


O bloqueio é de nível de linha (não é bloqueio exclusivo da tabela) e fica associado à transação atual; outras sessões que tentarem atualizar as mesmas linhas ficarão em espera até sua liberação.


A liberação do bloqueio ocorre apenas quando a sessão finaliza a transação com COMMIT (confirma) ou ROLLBACK (desfaz).

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo