(JDBC) Lock de select em Oracle e SQL server

Ola pessoal.
Alguém sabe como eu posso usar o jdbc e fazer um lock de determinados records no oracle e no sql server?
Quando o programa seleciona um set de dados, eu tenho q boloquear esses dados em visualizaçao tb, ninguem pode nem visualizar, mto menos fazer um update nesses dados depois que eu fiz o select.
Tenho q prever esse lock no sql server e no oracle (a aplicaçao pode ser usada nos dois banco de dados).
Tentei procurar sobre isso mas eu achei somente p oracle e nao me parece q é a mesma coisa p o sql server (estou testando ainda).
Alguém tem alguma sugestao?

Valeu.

A unica coisa que me vem na cabeça é o cursor, mas eu tenho q ver ainda se a sintaxe é a mesma.

“Ninguém pode nem visualizar” é uma coisa que não se resolve com um “select for update”, que é o que você deve ter encontrado no Oracle (afinal de contas, outros caras podem usar um select mesmo que você esteja usando um “select for update”. É que cada usuário do banco recebe um “snapshot” dos dados - lembre-se, para acelerar o acesso, o Oracle faz tudo para não bloquear os registros, mesmo que ele tenha de criar múltiplas versões de um mesmo registro).

Em vez disso, você pode criar um campo nesses registros que indique se o registro pode ser visualizado ou não, e que deve ser atualizado pela transação que bloqueia os tais registros. E todas as consultas devem checar se o tal campo está setado ou não :slight_smile:

N é tao simples assim. O sistema era implementado c esse tipo de controle antes (com um flag p marcar se esta sendo atualizado ou n), porém o problema é q se o programa fizer uma select de 10 records que serao atualizados (um exemplo c poucos dados, geralmente o sistema trabalha c mais dados) e começa a marcar esses records e nesse meio tempo um outro programa q tb tem acesso a essa tabela começa a trabalhar c o nono record q eu ainda n atuazei, qdo eu chegar naquele record ele vai estar bloqueado e qdo se desbloquear vai estar c um valor diferente d qdo eu fiz o select.
E’ um problema de concorrencia q me esta fazendo perder os cabelos!