A instrução SELECT consiste de uma consulta com uma
A
Pode ser definido o nível de isolamento da instrução SELECT utilizando a sintaxe WITH {RR|RS|CS|UR}.
A instrução SELECT retorna um ResultSet.
O cursor é um ponteiro para uma linha específica do ResultSet.
Nos aplicativos Java, todos os ResultSets são cursores.
O cursor é atualizável, ou seja, podem ser atualizadas e excluídas linhas ao
se caminhar através do ResultSet, se a instrução SELECT que gerou o
cursor e sua consulta subjacente atenderem aos requisitos de poder ser
atualizável, conforme detalhado abaixo.
Deve ser utilizada a cláusula FOR UPDATE quando se deseja gerar um cursor
atualizável.
Se a instrução SELECT atender aos requisitos listados abaixo, os cursores
serão atualizáveis apenas se for especificado FOR UPDATE na cláusula FOR
(consulte a
Somente os cursores simples, com SELECT em uma única tabela, e os ResultSets FORWARD_ONLY, podem ser atualizáveis. A instrução SELECT para ResultSet atualizável possui a mesma sintaxe que a instrução SELECT para cursor atualizável. Para gerar cursores atualizáveis:
Não existe instrução na linguagem SQL para atribuir nome a um
cursor.
Em vez disso, deve ser utilizada a API do JDBC para atribuir nomes a cursores
ou obter os nomes gerados pelo sistema.
Para obter mais informações, deve ser consultado "Atribuir nome ou acessar o
nome do cursor" no capítulo 5 do
Os cursores são apenas-de-leitura por padrão.
Para um cursor ser atualizável, deve ser especificado FOR UPDATE na cláusula
FOR (consulte a
A instrução SELECT depende de todas as tabelas e visões especificadas na
consulta, e dos conglomerados (unidades de armazenamento, como heaps e
índices) escolhidos como caminho de acesso para estas tabelas.
A instrução CREATE INDEX não invalida a instrução SELECT preparada.
A instrução DROP INDEX invalida a instrução SELECT preparada, se o índice for
um caminho de acesso na instrução.
Quando o SELECT inclui visões, também depende dos objetos do dicionário dos
quais as visões dependem (consulte a
Toda instrução UPDATE WHERE CURRENT ou DELETE WHERE CURRENT preparada sobre cursor de SELECT depende do SELECT. A remoção do SELECT através de uma instrução java.sql.Statement.close invalida UPDATE WHERE CURRENT e DELETE WHERE CURRENT.
O SELECT depende de todos os aliases utilizados na consulta. Remover um aliás invalida a instrução SELECT preparada, se a instrução utilizar o aliás.