Esta parece ser uma pergunta óbvia, mas o Google até agora falhou comigo ...
Digamos que eu tenha uma visão que delineia as atualizações que preciso aplicar e, para isso, tenho um SP que abre a visão como um cursor, percorre cada linha e faz a alteração apropriada. O problema é que as atualizações feitas pelo SP irão alterar o conteúdo da visão (por exemplo, uma vez que a inconsistência for tratada, a linha desaparecerá da visão).
Isso será refletido no cursor aberto (no SP) ou os dados que ele busca são fixos quando são abertos pela primeira vez?
O que li sugere que os dados do cursor são imutáveis depois de abertos - o que é bom - no entanto, ainda não encontrei uma resposta direta.
A Oracle fornecerá uma visão consistente de leitura dos dados. Supondo que você esteja usando o nível de isolamento de transação padrão de leitura confirmada, os dados que uma consulta retornará são fixados no momento em que o cursor é aberto (se o cursor está implícito ou explícito é irrelevante).
A única exceção a isso é que o PL/SQL chamado pela consulta (ou seja, funções armazenadas) verá os dados como eles existem no momento em que a função é chamada, não no momento em que o cursor foi aberto.