Criar função no Java para comando SQL

Olá galera!!

Estou tendo um problema em uma aplicação web de um select feito em banco de dados Oracle em uma aplicação web em que a quantidade de itens no IN desse select dá erro devido o mesmo conter mais de mil registros.
SELECT … IN (‘1’, ‘2’, ‘3’…‘1000’)

O Oracle não aceita mais de mil registros no IN e por isso acabo tendo problema.

Que tipo de função no Java podemos crair para poder resolver este problema?

Obrigado

O problema não é no java, não é mesmo?
Que tal quebrar em partes de, no máximo, 1000 e juntar os resultados com union?

O problema não é no java, mas pensei em criar uma função em Java para fazer tratamento disso, porque o Oracle não aceita mais de 1000 registros, e também existe uma variável dentro do select chamado de campoid.

Segue abaixo o cenário:

public class DelecaoSS {
private String campoid;

[…outros comandos…]

query.setLength(0);
query.append(" SELECT LS.OIDFIELDSET, LI.OIDRADIOSET, LS.OIDCHECKSET,
LS.IDOBJECT, LS.CDSLACONTROL, LS.OIDRADIOSETREG “);
query.append(” FROM OIDOVERSET LS LEFT OUTER JOIN OIDBUTTONSET LI ON
(LI.OIDFIELDSET = LS.OIDFIELDSET) “);
query.append(” WHERE LS.OIDOUTTERSET IN (" + this.campoid + ") ");

}

Se der pra resolver com Union, como que ficaria?

Obrigado

Fica parecido, apenas que você vai tratar e, a cada 999 itens dentro da cláusula in, você cria uma nova consulta. A questão é você quebrar esse campoId em partes e, a partir daí, definir esta estratégia de repetir.

Como que eu poderia resolver isso? Pelo java ou sql?

Pelo que entendi, teu campoId é uma String onde constam os mais de 1000 elementos que estão sendo colocados nesta cláusula, não?
Então, é no java, né?

ok obrigado